主要介紹如何抓取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¤tPage=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數據了
如有問題,歡迎交流