本文来源吾爱破解论坛
前段时间看有人发一个京东秒杀的小程序,正好自己也在学python 所以自己写试着写了一个看看 顺便分析一下过程 QQ截图20170520123324.png (57.06 KB, 下载次数: 3)
下载附件
保存到相册
QQ截图20170520123709.png (293.26 KB, 下载次数: 6)
下载附件
保存到相册
最开是直接爬去京东秒杀发现得不到想要的内容 猜测应该是js代码生成的数据 好不容易找到了jons数据接口 结果解析的时候一直报错,又回去吧json解析教程看了一遍 发现获取到的页面不是纯json数据格式 于是用re匹配
终于出现了中文
然后去提取数据 运行又报错 我也很绝望啊
回去看json数据发现开售商品和没开售的商品结构是不一样的 还有的商品居然没有销售状态(因为代码写的差不多了 也没有据深究)
有兴趣的朋友可以看看这个是什么状态下的商品
因为一开始只是想爬取电脑办公类目下的商品 所以没有定义函数(好吧 我承认自己没有一个好的python编写习惯) 最后才写的for 看起来怪怪的。
一次差不多2900个商品链接
[Asm] 纯文本查看 复制代码
import requests import json import re import csv dnbg = 'https://ai.jd.com/index_new?app=Seckill&action=pcSeckillCategoryGoods&callback=pcSeckillCategoryGoods&id=29&_=1495211171059' #电脑办公 shdq= 'https://ai.jd.com/index_new?app=Seckill&action=pcSeckillCategoryGoods&callback=pcSeckillCategoryGoods&id=19&_=1495250002658' #生活电器 sjtx = 'https://ai.jd.com/index_new?app=Seckill&action=pcSeckillCategoryGoods&callback=pcSeckillCategoryGoods&id=30&_=1495251020781' #手机通讯 djd = 'https://ai.jd.com/index_new?app=Seckill&action=pcSeckillCategoryGoods&callback=pcSeckillCategoryGoods&id=25&_=1495251044176' #大家电 znsm = 'https://ai.jd.com/index_new?app=Seckill&action=pcSeckillCategoryGoods&callback=pcSeckillCategoryGoods&id=31&_=1495251057993' #智能数码 yljs = 'https://ai.jd.com/index_new?app=Seckill&action=pcSeckillCategoryGoods&callback=pcSeckillCategoryGoods&id=45&_=1495251084828' # 饮料酒水 jjjz = 'https://ai.jd.com/index_new?app=Seckill&action=pcSeckillCategoryGoods&callback=pcSeckillCategoryGoods&id=37&_=1495251148047' #家具家装 mytz = 'https://ai.jd.com/index_new?app=Seckill&action=pcSeckillCategoryGoods&callback=pcSeckillCategoryGoods&id=43&_=1495251122767' #母婴童装 spsx = 'https://ai.jd.com/index_new?app=Seckill&action=pcSeckillCategoryGoods&callback=pcSeckillCategoryGoods&id=44&_=1495250603966' #食品生鲜 ghjq = 'https://ai.jd.com/index_new?app=Seckill&action=pcSeckillCategoryGoods&callback=pcSeckillCategoryGoods&id=32&_=1495251170952' #个护家清 def jdmiaosha(url): #开始只是想爬去电脑办公的 函数是后来加上去的 resp= requests.get(url).text #print(resp) resp = re.findall(r'\((.+)\)',resp)[0] #提取纯json代码 不然解析会出错 #print(resp) s = json.loads(resp) with open("jd.csv","a",newline="") as datacsv: csvwriter = csv.writer(datacsv,dialect = ("excel")) csvwriter.writerow(["商品","价格","销售状态","链接"]) datacsv.close for i in s['goodsList']: sales_url = "https://item.jd.com/"+str(i['wareId'])+".html" if 'soldRate' in i.keys(): sales_status = str(i['soldRate'])+"%" # 区别是否开抢 确定销售状态 else: if not i['startTimeContent']: sales_status = "---" else: sales_status = i['startTimeContent'] print('商品:{0}\t价格:{1}\t销售状态:{2}\t链接:{3}.'.format(i['wname'],i['miaoShaPrice'],sales_status,sales_url)) #格式化输出 with open("jd.csv","a",newline="") as datacsv: #写入到csv文件 csvwriter = csv.writer(datacsv,dialect = ("excel")) csvwriter.writerow([i['wname'],i['miaoShaPrice'],sales_status,sales_url]) for url in [dnbg,shdq,sjtx,djd,znsm,yljs,jjjz,mytz,spsx,ghjq]: jdmiaosha(url)
初学者 有问题希望大家指点。
版权声明:
本站所有资源均为站长或网友整理自互联网或站长购买自互联网,站长无法分辨资源版权出自何处,所以不承担任何版权以及其他问题带来的法律责任,如有侵权或者其他问题请联系站长删除!站长QQ754403226 谢谢。
- 上一篇: 什么?爬虫还能帮助我找对象?
- 下一篇: 【Python开源】抖音热门BGM爬虫下载~~~~