300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > 爬虫抓取京东 苏宁 唯品会商品价格

爬虫抓取京东 苏宁 唯品会商品价格

时间:2018-10-25 17:48:05

相关推荐

爬虫抓取京东 苏宁 唯品会商品价格

以iphone8为例

#京东做了反爬措施。直接抓取html内容不成功,所以要找到请求接口输入skuIds(商品代号),得到json字符串jd ="/prices/mgets?callback=jQuery6710688&type=1&area=1&pdtk=&pduid=1132198894&pdpin=&pin=null&pdbp=0&skuIds=J_5089225%2CJ_3319787%2CJ_4911001%2CJ_6027746%2CJ_771942%2CJ_899777%2CJ_5524603%2CJ_8448828%2CJ_5338456%2CJ_11010467023%2CJ_11170365589&ext=11100000&source=item-pc"#苏宁也做了反爬,打开浏览器调试器找到接口,获取一段json字符串SuNing="/nspcsale_0_000000000690105188_000000000690105188_0000000000_10_010_0100101_9_1000000_9017_10106_Z001___R1901001_0.39_0_.html?callback=pcData&_=1528718505339"#唯品会可以直接通过html内容抓取价格WeiPinghui="/detail-2959674-534092575.html"#解析网址或解析请求接口信息request_data1=urllib.request.urlopen(jd)request_data2=urllib.request.urlopen(SuNing)request_data3=urllib.request.urlopen(WeiPinghui)contentx1=request_data1.read().decode("UTF-8")contentx2=request_data2.read().decode('utf-8')contentx3=request_data3.read().decode('utf-8')#取得key=’p‘对应的值,得到京东上iphone8价格price1=str(contentx1).split('\"p\":\"')[1]price1=price1.split('\"')[0]#苏宁返回的json字符串较复杂,直接还原成字符串,split()分离出想要的结果,效果等同于从多层嵌套的列表和字典中找到key为promotionPrice的值price2=str(contentx2).split('promotionPrice\":\"')[1]price2=price2.split('\"')[0]#通过bs库BeautifulSoup()进行html语法解析soup3=BeautifulSoup(contentx3,"html.parser")#通过bs库find_all()过滤得到价格区间字符串。#中间有~字符,所以先split()过滤一次,取第一个有效字符串得到唯品会iPhone8价格price3=soup3.find_all('span',attrs={"class":"J-price"})[0].string.split('~')[0]price1 = float(price1)price2 = float(price2)price3 = float(price3)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。