[Python] python + selenium 抓取 京东商品数据(商品名称,售价,店铺,分类,订单信息,好评率,评论等) |
您所在的位置:网站首页 › 取商品名称颜料类的名字 › [Python] python + selenium 抓取 京东商品数据(商品名称,售价,店铺,分类,订单信息,好评率,评论等) |
目录 一、环境 二、简介 三、京东网页分析 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条信息是动态加载的 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |