教你用python爬取『京东』商品数据,原来这么简单!

312 阅读2分钟

从小白的角度入手,一步一步教大家如何爬取『京东』商品数据,文中以【笔记本】电脑为例!

干货内容包括:

如何爬取商品信息?

如何爬取下一页?

通过api的接口可以快速的获取商品的数据,例如商品颜色,价格,评论等

第一步:在网站注册号KEY和密钥

第二步:确定好需要的接口

第三步:充值就可以使用

京东以下接口的选择

item_get获得JD商品详情 item_sku获得JD商品sku信息 item_cat_get获得JD商品类目信息 item_get_desc获得京东商品描述 item_search按关键字搜索商品 item_search_img按图搜索京东商品(拍立淘) item_search_shop获得店铺的所有商品 item_history_price获取商品历史价格信息 item_recommend获取推荐商品列表 upload_img上传图片到JD item_review获得JD商品评论 item_get_app获得JD商品详情原数据 cat_get获得jd商品分类 1.查看网页 在『京东商城』搜索框输入:笔记本

链接如下:

image.png search.jd.com/search?keyw… 在浏览器里面按F12,分析网页标签(这里我们需要爬取1.商品名称、2.商品价格、3.商品评论数)

image.png 2.分析网页标签 获取当前网页所有商品

可以看到在class标签id=J_goodsList里ul->li,对应着所有商品列表

获取商品具体属性

每一个li(商品)标签中,class=p-name p-name-type-2对应商品标题,class=p-price对应商品价格,class=p-commit对应商品ID(方便后面获取评论数)

避坑:

这里商品评论数不能直接在网页上获取!!!,需要根据商品ID去获取。

爬取数据

1.编程实现

image.png url="search.jd.com/search?keyw…" res = requests.get(url,headers=headers) res.encoding = 'utf-8' text = res.text

selector = etree.HTML(text) list = selector.xpath('//*[@id="J_goodsList"]/ul/li')

for i in list: title=i.xpath('.//div[@class="p-name p-name-type-2"]/a/em/text()')[0] price = i.xpath('.//div[@class="p-price"]/strong/i/text()')[0] product_id = i.xpath('.//div[@class="p-commit"]/strong/a/@id')[0].replace("J_comment_","") print("title"+str(title)) print("price="+str(price)) print("product_id="+str(product_id)) print("-----")