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閱讀還是沒有的,至少沒有封掉我……

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章