[Python] python + selenium 抓取 京东商品数据(商品名称,售价,店铺,分类,订单信息,好评率,评论等)

本文介绍了使用Python和Selenium爬取京东商品信息的详细步骤,包括商品名称、售价、店铺、分类、订单信息、好评率和评论等。通过分析网页结构,解决动态加载问题,实现数据抓取。文章还分享了在实际操作中遇到的问题及解决方案。
摘要由CSDN通过智能技术生成

 

目录

一、环境

二、简介

三、京东网页分析

1.获取商品信息入口--商品列表链接获取

2.获取商品信息入口--商品详情链接获取

3.商品详情获取

4.商品评论获取

四、代码实现

五、运行结果

六、结语


一、环境

       win10 + python 3.7 + pycharm64 + selenium

二、简介

       抓取京东商品页面信息:商品名称,售价,店铺,分类,订单信息,好评率,评论等----这里以'每周一花'为例

三、京东网页分析

       采集思路如下:

此次主要采集以下字段数据:

  • title:商品名称
  • price:售价
  • brand:品牌
  • shop_name:店名
  • weight:商品重量
  • user:适用人群
  • classify:商品分类
  • comment_num:系列商品总评论数
  • praise_degree:系列商品总好评度
  • tag_list:系列商品总评价标签
  • single_comment_num:当前商品评论条数
  • single_tags:当前商品评价标签
  • member:顾客会员级别
  • star:评星等级
  • comment:评语
  • pic_num:评论图片数/视频数
  • order:订单详情(包含订单形式、下单日期等)

1.获取商品信息入口--商品列表链接获取

        爬取商品信息首先得有商品信息入口,这里直接从京东的分类中进入商品列表页面,没有对搜索关键词进行处理,仅处理了商品的页码。

       翻看网页,发现共有16页,想用点击下一页(click()的方式)实现翻页,获取每一个商品列表链接。

       这里有个坑需要注意:class='pn-next disabled',在第16页依旧可以找到,如果以此设置click() 在第16页后依旧会执行,抓取到别的类目的链接。

踩坑后用设置url的方式获取商品列表链接

翻看多页发现url里的页码关键字:

page:页码(奇数递增)

s:sku数(page*60+1)

构建请求url:

url='https://search.jd.com/Search?keyword=%E6%AF%8F%E5%91%A8%E4%B8%80%E8%8A%B1&enc=utf-8&qrst=1&rt=1&stop=1&vt=2&wq=%E6%AF%8F%E5%91%A8%E4%B8%80%E8%8A%B1&page='+str(i*2+1)+'&s='+str(i*60+1)+'&click=0'

网页对搜索关键词进行了加密,将 ‘ 每周一花 ’ 转化为 ' %E6%AF%8F%E5%91%A8%E4%B8%80%E8%8A%B1 '

可以用 request.unquote()对其解密

一共16页,用for循环获取所有商品列表链接:用urltrue_list接收数据

#获得 京东每周一花的16个商品列表链接 这里可以定义函数,传入要抓取的关键字或页数,使其更加灵活
urltrue_list=[]
for i in range(16):
    url='https://search.jd.com/Search?keyword=%E6%AF%8F%E5%91%A8%E4%B8%80%E8%8A%B1&enc=utf-8&qrst=1&rt=1&stop=1&vt=2&wq=%E6%AF%8F%E5%91%A8%E4%B8%80%E8%8A%B1&page='+str(i*2+1)+'&s='+str(i*60+1)+'&click=0'
    urltrue=request.unquote(url)
    urltrue_list.append(urltrue)

2.获取商品信息入口--商品详情链接获取

打开商品列表链接,每一页都有60个商品,如果直接抓取会发现只能抓到30个,原因是:后30条信息是动态加载的

  • 31
    点赞
  • 218
    收藏
    觉得还不错? 一键收藏
  • 16
    评论
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值