吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 48141|回复: 82
收起左侧

[Python 转载] 京东秒杀商品小爬虫

  [复制链接]
MrTong 发表于 2017-5-20 12:40
前段时间看有人发一个京东秒杀的小程序,正好自己也在学python  所以自己写试着写了一个看看 顺便分析一下过程
最开是直接爬去京东秒杀发现得不到想要的内容  猜测应该是js代码生成的数据  好不容易找到了jons数据接口  结果解析的时候一直报错,又回去吧json解析教程看了一遍 发现获取到的页面不是纯json数据格式 于是用re匹配
终于出现了中文
然后去提取数据 运行又报错  我也很绝望啊
回去看json数据发现开售商品和没开售的商品结构是不一样的   还有的商品居然没有销售状态(因为代码写的差不多了 也没有据深究)
有兴趣的朋友可以看看这个是什么状态下的商品
QQ截图20170520123324.png
  因为一开始只是想爬取电脑办公类目下的商品  所以没有定义函数(好吧 我承认自己没有一个好的python编写习惯) 最后才写的for  看起来怪怪的。
一次差不多2900个商品链接
QQ截图20170520123709.png
[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)


初学者 有问题希望大家指点。

免费评分

参与人数 18吾爱币 +17 热心值 +17 收起 理由
逆枫 + 1 + 1 用心讨论,共获提升!
IFoe + 1 + 1 热心回复!
cz226 + 1 + 1 用心讨论,共获提升!
小厮 + 1 + 1 用心讨论,共获提升!
ZHUYIBEIZI + 1 + 1 我很赞同!
一叶知秋G + 1 谢谢@Thanks!
hjf850525 + 1 谢谢@Thanks!
wushaominkk + 3 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
gvosr + 1 + 1 我很赞同!
带色的小马甲 + 1 + 1 我很赞同!
DEVIL_GAMER + 1 + 1 谢谢@Thanks!
李小军 + 1 不难交流裙202439822
lixiang354 + 1 + 1 用心讨论,共获提升!
changjiang + 1 + 1 我很赞同!
丽l想 + 1 + 1 我很赞同!
lin_xop + 1 热心回复!
www654320 + 1 + 1 感谢分享,已制作成品自用
不朽尸王毛润之 + 1 + 1 很麻烦吗 http://jd.92haohuo.com

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

头像被屏蔽
www654320 发表于 2017-5-20 13:24
提示: 作者被禁止或删除 内容自动屏蔽
头像被屏蔽
www654320 发表于 2017-5-31 21:20
阿墨 发表于 2017-5-20 12:51
hmh0414 发表于 2017-5-20 12:58
看不懂,我还以为是分享工具呢
 楼主| MrTong 发表于 2017-5-20 13:00
阿墨 发表于 2017-5-20 12:51
厉害啊,可惜作品没共享

作品论坛以前有人共享了
非寒 发表于 2017-5-20 13:07
进来瞅瞅
gq060 发表于 2017-5-20 13:33
进来学习下
Fred_tt 发表于 2017-5-20 13:59
这个看着确实麻烦 要面向大众
920067776 发表于 2017-5-20 14:33
本帖最后由 920067776 于 2017-5-20 14:34 编辑

厉害啊,热心回复!
Alonc 发表于 2017-5-20 14:47 来自手机
学习下  谢谢分享
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-16 07:50

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表