Hadoop笔记之十七——爬虫框架scrapy实际案例(爬取安卓版QQ阅读)

  话不多说,我们的目的: 使用scrapy爬取安卓版QQ阅读所有的小说(只是小说的基本信息,小说内容是不要想的、千万不要想……)

环境准备

安卓收集模拟器:夜神模拟器  

安卓手机抓包工具:fiddler

代码运行环境:   python3.6

存储数据库: postgreSQL。

 

大体思路

    本来想详细的写一写过程步骤,但是懒癌来了怎么都拦不住。下面可以给大家一个,每一步骤的具体操作网上都有,不难也不难理解,我会上传一份可用的自己写好的QQ阅读的scrapy代码,直通车——。

  (1)准备好postgreSQL数据库,设置可远程连接。

  (2)夜神模拟器安装QQ阅读。

  (3)通过fiddler监听夜神模拟器发出的所有请求。

      需要注意的是:fiddler默认不监听https的请求,我们需要在它的设置里面取设置,并且要在被监听的模拟器里面安装信任安全证书。

  (4)分析QQ阅读的请求,找到我们需要的数据接口并分析其Json规则。

      QQ阅读APP的规则并不难找,只能上面的监听成功了。我们就可以在QQ阅读的全部分类里面,先爬取到所有的分类,然后对每一个分类分别爬取其下所有的小说,具体规则如下:

  

1、大类别(男女、出版、漫画、听书)下的小类别:https://androidtgw.reader.qq.com/v7_0_5/queryOperation?categoryFlag=1
(categoryFlag 1—5代表五种大类别,返回数据种actionId为小类别Id)

2、小类别下小说列表(举例 男生—玄幻):http://rec.reader.qq.com/v7_0_5/listDispatch?actionTag=,-1,-1,-1,-1,101&actionId=20001&action=categoryV3&pagestamp=1 (pagestamp为分页标识)

3、某一小说(举例 男生-玄幻,男生-奇幻,女生-言情):

奇幻:
https://androidtgw.reader.qq.com/v7_0_5/nativepage/book/detail?pagestamp=1&alg=67.1.11&dataType=cate_id&data_type=0&fromPage=&origin=20005&bid=25297287
言情:https://androidtgw.reader.qq.com/v7_0_5/nativepage/book/detail?bid=25054827&pagestamp=1&alg=67.1.11&dataType=cate_id&data_type=0&fromPage=&origin=30013
(bid为书籍标识,actionId为小类别id,pagestamp为分页标识)

  (5)搭建scrapy框架,根据上面得到的规则编写代码,进行数据的爬取。

       这里需要注意的地方是 我们爬取一些(有反爬虫的)网站的时候要么使用个代理ip池、要么设置个爬取延时,不然这些网站可能会封掉我们的ip,不过QQ阅读还是没有的,至少没有封掉我……

发布了88 篇原创文章 · 获赞 28 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/qq_35946969/article/details/91446192