爬虫系列——使用scrapy爬取京东的商品以及评论信息

需求:根据某个关键词,这里以"spark"为例,在京东搜索页面进行输入,然后爬取搜索的商品结果,对某一个商品进入详情页面,爬取商品的评论信息!

以关键字"spark"进行搜索,拿到搜索页的url地址:

https://search.jd.com/Search?keyword=spark&enc=utf-8&suggest=1.rem.0.T00&wq=spark&pvid=5b4c9c5880184033b4174b73d0826d32

通过精简后,发现下面的地址也可以拿到,请求url地址为:

https://search.jd.com/Search?keyword=spark

查看下一页的链接,发现是一个js实现的,无法直接获取到,如下图:

下一页是一个js调用

点击链接,通过url查看地址变成了:

查看点击的时候url变化

第二页的时候,page变成了3,第三页的时候,page变成了5,由此推导出page = 1 + (实际页数-1)* 2

直接访问地址https://search.jd.com/Search?keyword=spark&page=3一样拿到了结果信息,所以可实现自己拼接url来爬取数据啦!通过定位商品,点击检查,查看页面信息如下:


每个商品是一个li

好了,编写爬虫的方法,这里还是通过xpath进行定位咯,xpath方便简单,没用过的直接百度啦!

spider的parse方法

商品爬取结束,通过pipeline保存到mysql数据库,这个已经在上一节讲过啦。地址(http://www.jianshu.com/p/f4d6e235a924),直接看数据库的结果:

商品信息

好了,爬取商品完毕,下面看看某一个商品的全部评论如何获取呢?点击到商品详情页面,以地址https://item.jd.com/11782888.html#comment为例,依然打开浏览器,找到评论的地方,选择检查,就可以定位到源码啦,如下图:


评论信息

如图所示,评论信息是一个个comments-item,那么还是直接通过xpath来定位吧,重点是下一页,这时候当我们点击下一页的时候,发现url并没有什么明显的变化了,那么在页面按f12,看后台悄悄做了什么,看到通过js发送了后台请求:

js请求

复制出来对应的url,直接在浏览器请求,一样得到了结果,所以直接请求对应的地址就好啦,去掉地址中无用的参数:

https://sclub.jd.com/comment/productPageComments.action?productId=11782888&score=0&sortType=3&page=1&pageSize=10

请求结果

并且通过请求发现,返回的是一个json对象,所以直接解析json,并对url进行下一页的拼接,就可以拿到所有评论啦!

主要的逻辑类
评论结果
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前言 网络爬虫,是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。爬虫可以通过模拟浏览器访问网页,从而获取...
    Kevin_ZGJ阅读 8,892评论 11 28
  • 1 前言 作为一名合格的数据分析师,其完整的技术知识体系必须贯穿数据获取、数据存储、数据提取、数据分析、数据挖掘、...
    whenif阅读 18,103评论 45 523
  • 抓取京东商城商品评论信息,并对这些评论信息进行分析和可视化。下面是要抓取的商品信息,一款女士文胸。这个商品共有红色...
    _hahaha阅读 6,226评论 2 7
  • 最近眼睛干涩,早上三点左右必醒。想睡着困难,想着自己是不是得了抑郁症,难道抑郁不是能自己调节的吗? 焦虑,没来由的...
    一把泥巴阅读 172评论 0 0
  • 今天的标题很特殊,我是别人给题目才能写,所以特地到群里找了一下标题,发现没有标题,很纠结,说真的不知道写啥...
    帅气的昵称长啥样子阅读 145评论 0 1