爬取掌閱app免費電子書數據


主要介紹如何抓取app數據及抓包工具的使用,能看到這相信你已經有爬蟲基礎了

編不下去了,主要是我懶,直接開干吧!

 

一.使用環境和工具

  windows + python3 + Jsonpath + Charles + MuMu模擬器

二.下載工具

  Charles下載:https://www.charlesproxy.com/latest-release/download.do

  MuMu模擬器:http://mumu.163.com/baidu/

三.安裝及配置工具

  Charles

    安裝,直接傻瓜式安裝就行

    配置:

      1.打開Charles->點擊Help->SSL Procying->Install Charles Root Certificate,即可進入證書安裝界面

        

      2.安裝證書->下一步->將所有的證書都放入下列存儲(P)->瀏覽->受信任的根證書頒發機構->確定->下一步->完成

        

        

      3.可設置端口號,一般為默認(如果系統沒有其他軟件與8888端口沖突,可忽略該步驟)

        

      4.設置SSL代理(如果不設置,后面請求會是有很多443)

          Proxy -> SSL Proxying Settings -> Add

        

        輸入端口號443,點擊OK

        

        出現下面界面就添加成功了

        

  

   MuMu模擬器

    安裝:同樣是傻瓜式

    配置:

      1.設置代理

        

      2.獲取電腦ip  ,  win + r -> 輸入cmd -> 回車

        

      3.安裝證書

        在虛擬器打開瀏覽器,輸入cals.pro/ssl自動下載證書,下載完成后,點擊打開

        

    不出意外的話,工具安裝和配置到這里就可以編寫爬蟲代碼了

四.測試及找數據api接口

  1.首先要打開Charles,再打開模擬器,下載掌閱app,打開模擬器,搜索免費

    

  2.再看Charles軟件,會發現左邊的選項框中多了,一堆請求地址,隨便點擊一個,發現這個返回的數據和看到的好像不一樣

    

  3.再點下一個,再看看,哎,這個返回的數據好像挺多的,但是有編碼問題看不出來是什么

    

  4.復制請求地址

    

  5.將請求地址在瀏覽器中打開,現在就可以看出來是什么了,會發現這些數據就是我們想要的數據

    

   6.在驗證一下,打開掌閱往下滑,會發現Charles中多了好多長的差不多的請求地址,這就證明猜測是正確的

    

五.編寫爬蟲程序

  這里我用的是requests模塊,只是開了個頭

  

import requests
import jsonpath
import json

# 經分析得知
# pageSize:表示的是每頁返回多少條數據,currentPage:表示的是頁數
url = 'https://ah2.zhangyue.com/zybook3/u/p/api.php?Act=searchMultipleV3&keyword=%E5%85%8D%E8%B4%B9&type=book,category,activity,relatedSearch,author,user&pageSize=500&currentPage=1'
# 請求頭
head= {
        "Host": "ah2.zhangyue.com",
        "Connection": "Keep-Alive",
        "Accept-Encoding": "gzip",
        "User-Agent": "okhttp/3.9.0"
}
# 攜帶請求頭請求數據
response = requests.get(url,headers = head)
# 將json數據轉為字典
content = json.loads(response.text)
# 使用jsonpath查找元素
res = jsonpath.jsonpath(content,'$.body.book.datas')
# 遍歷取出每本書的詳細信息
for book in res[0]:
    print(book)

 

返回數據結果:

  

到這里,就可以爬取大部分app數據了

  如有問題,歡迎交流

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM