Python爬虫——实战一:爬取京东产品价格(逆向工程方法)
2017-08-15 21:27
1731 查看
在京东的单个产品页面上,通过查看源码检查html,可以看到
这里没有直接给出价格。
这是因为价格数据是通过JS动态加载的,而HTML源码中并不包含动态加载的页面内容。
上述代码的关键在于https://p.3.cn/prices/mgets?skuIds=J_12419422058” ,打开这个链接,可以看到:
这个就是针对价格请求返回的响应页面,其中”p”表示的就是商品的价格。
现在选择Firebug的“网络”,然后刷新当前商品页面。然后选择“全部”,在“域”栏找到p.3.cn,该行对应的就是价格请求。
在多次运行爬虫之后,价格页面返回的是
采用渲染引擎方法。
<span class="p-price"><span>¥</span><span class="price J-p-1279836"></span></span>
这里没有直接给出价格。
这是因为价格数据是通过JS动态加载的,而HTML源码中并不包含动态加载的页面内容。
获取京东商品的价格
#-*- coding:utf-8 -*- import urllib2 import json def jd_price(url): sku = url.split('/')[-1].strip(".html") print sku price_url = "https://p.3.cn/prices/mgets?skuIds=J_" + sku response = urllib2.urlopen(price_url) content = response.read() result = json.loads(content) print result record = result[0] #print "price:", record['p'] return record['p'] if __name__=="__main__": jd_price("https://item.jd.com/12419422058.html")
上述代码的关键在于https://p.3.cn/prices/mgets?skuIds=J_12419422058” ,打开这个链接,可以看到:
这个就是针对价格请求返回的响应页面,其中”p”表示的就是商品的价格。
如何知道上面的URL中有价格信息呢?
在火狐浏览器中安装了Firebug。右键点击商品价格,选择“使用Firebug查看元素”,可以看到打开的“HTML”中包含了价格信息。这是因为Firebug的”HTML”显示的是动态加载完所有数据后的源码。现在选择Firebug的“网络”,然后刷新当前商品页面。然后选择“全部”,在“域”栏找到p.3.cn,该行对应的就是价格请求。
实际中遇到的问题
2017.8.22在多次运行爬虫之后,价格页面返回的是
{"error":"pdos_captcha"}
采用渲染引擎方法。
相关文章推荐
- Python爬虫——实战二:爬取天猫产品价格(逆向工程方法)
- Python爬虫——实战三:爬取苏宁易购的商品价格(渲染引擎方法)
- Python爬虫(一)京东商品价格及详情页抓取
- Python 3实战爬虫之爬取京东图书的图片详解
- python3[爬虫实战] 爬虫之requests爬取新浪微博京东客服
- python3[爬虫实战] 使用selenium,xpath爬取京东手机(下)
- Python3爬虫实战之爬取京东图书图片
- python根据京东商品url获取产品价格
- 逆向工程核心原理学习笔记(五):实战“打补丁方法”修改字符串
- PYTHO 爬虫,抓去京东产品价格DEMO
- python3[爬虫实战] 使用selenium,xpath爬取京东手机(上)
- python根据京东商品url获取产品价格
- 【Python爬虫】按时爬取京东几类自营手机型号价格参数并存入数据库
- python3[爬虫实战] 使用selenium,xpath爬取京东手机(上)
- python爬虫实战(一)----------爬取京东商品信息
- Python爬虫实战(2):爬取京东商品列表
- Python爬虫——实战四:爬取亚马逊的商品价格
- python爬虫实战,多线程爬取京东jd html页面:无需登录的网站的爬虫实战 推荐
- python3下几个淘宝、天猫、京东爬虫实例。(价格、销量、评论等)
- python3 [爬虫实战] 微博爬虫京东客服之Selenium + Chrom浏览器的使用(上)