爬蟲練習-鬥魚顏值頻道
1.抓包分析
這次使用手機抓包分析,抓包工具
聽說做app測試或者介面測試都需要使用到抓包工具(沒做過,不曉得)
網上抓包工具的配置教程很多例如
配置好之後在手機上打開鬥魚APP找到顏值頻道
清空Charles裡面的內容
下拉刷新當前頁面,然後下翻幾頁
刪除Charles上與douyu域名無關的信息
大概留下如圖內容:
逐條查看一下找到有主播名稱的內容
https://apiv2.douyucdn.cn/gv2api/rkc/roomlist/2_201/0/20/ios?client_sys=ios
https://apiv2.douyucdn.cn/gv2api/rkc/roomlist/2_201/20/20/ios?client_sys=ios
https://apiv2.douyucdn.cn/gv2api/rkc/roomlist/2_201/40/20/ios?client_sys=ios
https://apiv2.douyucdn.cn/gv2api/rkc/roomlist/2_201/60/20/ios?client_sys=ios
其中唯一區別是/xx/20/ios?client_sys=ios 合理推斷這是頁數
從json裡面發現幾個比較關鍵的內容
房間id:
房間名字:
主播名字:
主播封面:
主播城市:
2.代碼編寫
先創建兩個url拼接,中間可以放頁數的字元
由於是用的手機端,為了防止出現什麼問題,頭部信息使用手機的agent
先寫一個獲取剛才分析了需要獲得的信息的函數
來對json內容進行轉換
函數接受頁數的傳入
1.進行url的拼接
2.進行json的轉換,轉化成為python的字典格式
3.對轉換後的字典取值
將取出來的值傳入下載圖片的函數中
1.使用圖片的url進行訪問並轉換成二進位
2.為了不讓圖片零零散散,新建一個文件存放圖片
3.使用寫入二進位
按照慣例使用進程池來加快下載速度
全代碼如下:
運行結果:
TAG:鍾胖胖的記事本 |