摘要:所以我們就要通過(guò)抓包工具來(lái)獲取到請(qǐng)求與響應(yīng)的信息。關(guān)于抓包工具有等。中的可以根據(jù)自己要爬取的用戶(hù)更改,可以通過(guò)把用戶(hù)分享到微信,然后在瀏覽器中打開(kāi)鏈接,在打開(kāi)的中可以看到用戶(hù)的。運(yùn)行后就可以得到視頻列表有任何疑問(wèn),歡迎加我微信交流。
APP抓包
前面我們了解了一些關(guān)于 Python 爬蟲(chóng)的知識(shí),不過(guò)都是基于 PC 端瀏覽器網(wǎng)頁(yè)中的內(nèi)容進(jìn)行爬取?,F(xiàn)在手機(jī) App 用的越來(lái)越多,而且很多也沒(méi)有網(wǎng)頁(yè)端,比如抖音就沒(méi)有網(wǎng)頁(yè)版,那么上面的視頻就沒(méi)法批量抓取了嗎?
答案當(dāng)然是 No!對(duì)于 App 來(lái)說(shuō)應(yīng)用內(nèi)的通信過(guò)程和網(wǎng)頁(yè)是類(lèi)似的,都是向后臺(tái)發(fā)送請(qǐng)求,獲取數(shù)據(jù)。在瀏覽器中我們打開(kāi)調(diào)試工具就可以看到具體的請(qǐng)求內(nèi)容,在 App 中我們無(wú)法直接看到。所以我們就要通過(guò)抓包工具來(lái)獲取到 App 請(qǐng)求與響應(yīng)的信息。關(guān)于抓包工具有 Wireshark,Fiddler,Charles等。今天我們講一下如何用 Fiddler 進(jìn)行手機(jī) App 的抓包。
Fiddler 的工作原理相當(dāng)于一個(gè)代理,配置好以后,我們從手機(jī) App 發(fā)送的請(qǐng)求會(huì)由 Fiddler 發(fā)送出去,服務(wù)器返回的信息也會(huì)由 Fiddler 中轉(zhuǎn)一次。所以通過(guò) Fiddler 我們就可以看到 App 發(fā)給服務(wù)器的請(qǐng)求以及服務(wù)器的響應(yīng)了。
Fiddler 安裝配置我們安裝好 Fiddler 后,首先在菜單 Tool>Options>Https 下面的這兩個(gè)地方選上。
然后在 Connections 標(biāo)簽頁(yè)下面勾選上 Allow remote computers to connect,允許 Fiddler 接受其他設(shè)備的請(qǐng)求。
同時(shí)要記住這里的端口號(hào),默認(rèn)是 8088,到時(shí)候需要在手機(jī)端填。
配置完畢,保存后,一定關(guān)掉 Fiddler 重新打開(kāi)。
手機(jī)端配置確保手機(jī)和電腦在同一個(gè)局域網(wǎng)中,我們先看下計(jì)算機(jī)的 IP 地址,在 cmd 中輸入 ipconfig 就可以看到。我電腦用的是無(wú)線網(wǎng),所以 IP 地址為 192.168.1.3。
打開(kāi)手機(jī)無(wú)線連接,選擇要連接的熱點(diǎn)。長(zhǎng)按選擇修改網(wǎng)絡(luò),在代理中填上我們電腦的 IP 地址和 Fiddler 代理的端口。如下圖所示:
保存后,在手機(jī)原生瀏覽器打開(kāi) http://192.168.1.3:8008 ,就是上面我們的計(jì)算機(jī) IP 和端口。這一步我在夸克瀏覽器中打開(kāi)是不行的,一定要到手機(jī)自帶的瀏覽器打開(kāi)。
打開(kāi)后,點(diǎn)擊下圖鏈接,下載證書(shū),然后安裝證書(shū)。
電腦端瀏覽器也需要打開(kāi)此地址,安裝證書(shū),方便以后對(duì)瀏覽器的抓包操作。
安裝后就萬(wàn)事 OK 了,可以用手機(jī)打開(kāi) App ,在 Fiddler 上愉快的抓包了。
抓包我們打開(kāi)抖音 App,會(huì)發(fā)現(xiàn) Fiddler 上出來(lái)很多連接。我們先清空沒(méi)用的連接信息,然后滑動(dòng)到某個(gè)人的主頁(yè)上,來(lái)查看他發(fā)布過(guò)的所有視頻,同時(shí)在 Fiddler 上找到視頻鏈接。
經(jīng)過(guò)觀察篩選我們可以看出上圖就是我們需要的請(qǐng)求地址,這個(gè)地址其實(shí)是可以在瀏覽器上打開(kāi)的,但是我們需要改一下瀏覽器的User-Agent,我用的是Firefox的插件,打開(kāi)后和 Fiddler 右邊的信息是一致的。我們看下 Fiddler 右邊該請(qǐng)求的響應(yīng)信息。
看到返回了一個(gè) JSON 格式的信息,其中aweme_list 就是我們需要的視頻地址,has_more=1 表示往上滑動(dòng)還會(huì)加載更多。之后就可以寫(xiě)代碼了。
代碼代碼很簡(jiǎn)單,和我們前幾篇講的一樣,直接用 requests 請(qǐng)求相應(yīng)鏈接即可。
代碼僅做為一個(gè)簡(jiǎn)單的例子,僅僅下載當(dāng)前頁(yè)面的內(nèi)容,如果要下載全部的視頻,可以根據(jù)當(dāng)次返回 JSON 結(jié)果中的 has_more 和 max_cursor 參數(shù)構(gòu)造出新的 URL 地址不斷的下載。
URL 中的 user_id 可以根據(jù)自己要爬取的用戶(hù)更改,可以通過(guò)把用戶(hù)分享到微信,然后在瀏覽器中打開(kāi)鏈接,在打開(kāi)的 URL 中可以看到用戶(hù)的 user_id。
import requests import urllib.request def get_url(url): headers = {"user-agent": "mobile"} req = requests.get(url, headers=headers, verify=False) data = req.json() for data in data["aweme_list"]: name = data["desc"] or data["aweme_id"] url = data["video"]["play_addr"]["url_list"][0] urllib.request.urlretrieve(url, filename=name + ".mp4") if __name__ == "__main__": get_url("https://api.amemv.com/aweme/v1/aweme/post/?max_cursor=0&user_id=98934041906&count=20&retry_type=no_retry&mcc_mnc=46000&iid=58372527161&device_id=56750203474&ac=wifi&channel=huawei&aid=1128&app_name=aweme&version_code=421&version_name=4.2.1&device_platform=android&ssmix=a&device_type=STF-AL10&device_brand=HONOR&language=zh&os_api=26&os_version=8.0.0&uuid=866089034995361&openudid=008c22ca20dd0de5&manifest_version_code=421&resolution=1080*1920&dpi=480&update_version_code=4212&_rticket=1548080824056&ts=1548080822&js_sdk_version=1.6.4&as=a1b51dc4069b2cc6252833&cp=dab7ca5f68594861e1[wIa&mas=014a70c81a9db218501e1433b04c38963ccccc1c4cac4c6cc6c64c")
運(yùn)行后就可以得到視頻列表:
有任何疑問(wèn),歡迎加我微信交流。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/43048.html
摘要:比如分鐘破譯朋友圈測(cè)試小游戲文章里用的方法但有些根本就沒(méi)有提供網(wǎng)頁(yè)端,比如今年火得不行的抖音。所以常用的方式就是通過(guò)在電腦上裝一些抓包軟件,將手機(jī)上的網(wǎng)絡(luò)請(qǐng)求全部顯示出來(lái)??偨Y(jié)下,重點(diǎn)是的抓取,關(guān)鍵是配置代理證書(shū),難點(diǎn)是對(duì)請(qǐng)求的分析。 爬蟲(chóng)的案例我們已講得太多。不過(guò)幾乎都是 網(wǎng)頁(yè)爬蟲(chóng) 。即使有些手機(jī)才能訪問(wèn)的網(wǎng)站,我們也可以通過(guò) Chrome 開(kāi)發(fā)者工具 的 手機(jī)模擬 功能來(lái)訪問(wèn),以便...
摘要:我們知道,在抖音中下載到的視頻是有水印的,這就催生出了很多抖音短視頻去水印的解析網(wǎng)站,小程序等。禁止重定向,設(shè)置運(yùn)行結(jié)果,是一個(gè)標(biāo)簽,便是重定向后的地址。 我們知道...
摘要:時(shí)間永遠(yuǎn)都過(guò)得那么快,一晃從年注冊(cè),到現(xiàn)在已經(jīng)過(guò)去了年那些被我藏在收藏夾吃灰的文章,已經(jīng)太多了,是時(shí)候把他們整理一下了。那是因?yàn)槭詹貖A太亂,橡皮擦給設(shè)置私密了,不收拾不好看呀。 ...
摘要:在爬蟲(chóng)的編寫(xiě)過(guò)程中使用最多的是,它表示查看請(qǐng)求和響應(yīng)的數(shù)據(jù)內(nèi)容。后續(xù)在打開(kāi)剛才加載的軟件,例如本次案例打開(kāi)的是皮皮蝦,開(kāi)啟,成功捕獲到如下請(qǐng)求,這個(gè)地方就是最終的接口了。復(fù)制接口地址,在本地瀏覽器打開(kāi),得到皮皮蝦的視頻評(píng)論數(shù)據(jù)。 ...
摘要:通過(guò)本文的學(xué)習(xí),可以快速掌握網(wǎng)絡(luò)爬蟲(chóng)基礎(chǔ),結(jié)合實(shí)戰(zhàn)練習(xí),寫(xiě)出一些簡(jiǎn)單的爬蟲(chóng)項(xiàng)目。從技術(shù)手段來(lái)說(shuō),網(wǎng)絡(luò)爬蟲(chóng)有多種實(shí)現(xiàn)方案,如。二網(wǎng)絡(luò)爬蟲(chóng)技術(shù)基礎(chǔ)在本次課中,將使用技術(shù)手段進(jìn)行項(xiàng)目的編寫(xiě)。 摘要:本文詳細(xì)講解了python網(wǎng)絡(luò)爬蟲(chóng),并介紹抓包分析等技術(shù),實(shí)戰(zhàn)訓(xùn)練三個(gè)網(wǎng)絡(luò)爬蟲(chóng)案例,并簡(jiǎn)單補(bǔ)充了常見(jiàn)的反爬策略與反爬攻克手段。通過(guò)本文的學(xué)習(xí),可以快速掌握網(wǎng)絡(luò)爬蟲(chóng)基礎(chǔ),結(jié)合實(shí)戰(zhàn)練習(xí),寫(xiě)出一些簡(jiǎn)單的...
閱讀 1850·2023-04-25 14:49
閱讀 3133·2021-09-30 09:47
閱讀 3125·2021-09-06 15:00
閱讀 2237·2019-08-30 13:16
閱讀 1452·2019-08-30 10:48
閱讀 2683·2019-08-29 15:11
閱讀 1300·2019-08-26 14:06
閱讀 1680·2019-08-26 13:30