Python 爬蟲(chóng)——抖音App視頻抓包

APP抓包

前面我們了解了一些關(guān)于 Python 爬蟲(chóng)的知識(shí)薯定,不過(guò)都是基于 PC 端瀏覽器網(wǎng)頁(yè)中的內(nèi)容進(jìn)行爬取÷饲現(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è)地方選上欢搜。

圖一.png

然后在 Connections 標(biāo)簽頁(yè)下面勾選上 Allow remote computers to connect,允許 Fiddler 接受其他設(shè)備的請(qǐng)求。
同時(shí)要記住這里的端口號(hào)谴轮,默認(rèn)是 8088炒瘟,到時(shí)候需要在手機(jī)端填。

圖二.png

配置完畢第步,保存后疮装,一定關(guān)掉 Fiddler 重新打開(kāi)。

手機(jī)端配置

確保手機(jī)和電腦在同一個(gè)局域網(wǎng)中粘都,我們先看下計(jì)算機(jī)的 IP 地址廓推,在 cmd 中輸入 ipconfig 就可以看到。我電腦用的是無(wú)線(xiàn)網(wǎng)翩隧,所以 IP 地址為 192.168.1.3樊展。

圖三.png

打開(kāi)手機(jī)無(wú)線(xiàn)連接,選擇要連接的熱點(diǎn)堆生。長(zhǎng)按選擇修改網(wǎng)絡(luò)专缠,在代理中填上我們電腦的 IP 地址和 Fiddler 代理的端口。如下圖所示:

圖四.png
圖五.png

保存后淑仆,在手機(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ì)瀏覽器的抓包操作轧粟。

圖六.png

安裝后就萬(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 上找到視頻鏈接。

圖七.png

經(jīng)過(guò)觀(guān)察篩選我們可以看出上圖就是我們需要的請(qǐng)求地址,這個(gè)地址其實(shí)是可以在瀏覽器上打開(kāi)的遵湖,但是我們需要改一下瀏覽器的User-Agent,我用的是Firefox的插件悔政,打開(kāi)后和 Fiddler 右邊的信息是一致的。我們看下 Fiddler 右邊該請(qǐng)求的響應(yīng)信息延旧。

圖八.png

看到返回了一個(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)行后就可以得到視頻列表:


圖九.png

有任何疑問(wèn)泥从,歡迎加我微信交流。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末沪摄,一起剝皮案震驚了整個(gè)濱河市躯嫉,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌杨拐,老刑警劉巖祈餐,帶你破解...
    沈念sama閱讀 207,113評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異哄陶,居然都是意外死亡帆阳,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評(píng)論 2 381
  • 文/潘曉璐 我一進(jìn)店門(mén)屋吨,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)蜒谤,“玉大人,你說(shuō)我怎么就攤上這事至扰△⒒眨” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 153,340評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵敢课,是天一觀(guān)的道長(zhǎng)旬盯。 經(jīng)常有香客問(wèn)我,道長(zhǎng),這世上最難降的妖魔是什么胖翰? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,449評(píng)論 1 279
  • 正文 為了忘掉前任接剩,我火速辦了婚禮,結(jié)果婚禮上萨咳,老公的妹妹穿的比我還像新娘懊缺。我一直安慰自己,他們只是感情好培他,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,445評(píng)論 5 374
  • 文/花漫 我一把揭開(kāi)白布鹃两。 她就那樣靜靜地躺著,像睡著了一般舀凛。 火紅的嫁衣襯著肌膚如雪俊扳。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,166評(píng)論 1 284
  • 那天猛遍,我揣著相機(jī)與錄音馋记,去河邊找鬼。 笑死懊烤,一個(gè)胖子當(dāng)著我的面吹牛梯醒,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播腌紧,決...
    沈念sama閱讀 38,442評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼茸习,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了壁肋?” 一聲冷哼從身側(cè)響起号胚,我...
    開(kāi)封第一講書(shū)人閱讀 37,105評(píng)論 0 261
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎浸遗,沒(méi)想到半個(gè)月后涕刚,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,601評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡乙帮,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,066評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了极景。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片察净。...
    茶點(diǎn)故事閱讀 38,161評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖盼樟,靈堂內(nèi)的尸體忽然破棺而出氢卡,到底是詐尸還是另有隱情,我是刑警寧澤晨缴,帶...
    沈念sama閱讀 33,792評(píng)論 4 323
  • 正文 年R本政府宣布译秦,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏筑悴。R本人自食惡果不足惜们拙,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,351評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望阁吝。 院中可真熱鬧砚婆,春花似錦、人聲如沸突勇。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,352評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)甲馋。三九已至埂奈,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間定躏,已是汗流浹背账磺。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,584評(píng)論 1 261
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留共屈,地道東北人绑谣。 一個(gè)月前我還...
    沈念sama閱讀 45,618評(píng)論 2 355
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像拗引,于是被迫代替她去往敵國(guó)和親借宵。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,916評(píng)論 2 344

推薦閱讀更多精彩內(nèi)容

  • 轉(zhuǎn)載地址 image.png 前言 fiddler是一個(gè)很好的抓包工具矾削,默認(rèn)是抓http請(qǐng)求的壤玫,對(duì)于pc上的htt...
    菜菜編程閱讀 21,102評(píng)論 0 28
  • 前言fiddler是一個(gè)很好的抓包工具,默認(rèn)是抓http請(qǐng)求的哼凯,對(duì)于pc上的https請(qǐng)求欲间,會(huì)提示網(wǎng)頁(yè)不安全,這時(shí)...
    胖子愛(ài)豬蹄閱讀 12,277評(píng)論 4 22
  • 過(guò)濾器 前言 fiddler是一個(gè)很好的抓包工具断部,默認(rèn)是抓http請(qǐng)求的猎贴,對(duì)于pc上的https請(qǐng)求,會(huì)提示網(wǎng)頁(yè)不...
    jmyang1518閱讀 3,084評(píng)論 0 13
  • P1-P62 我們?cè)谝獎(jiǎng)e人幫忙的時(shí)候蝴光,要是能給一個(gè)理由她渴,成功的幾率會(huì)更大。 綠寶石案例—“一分錢(qián)一分貨”蔑祟,其實(shí)也就...
    蘭麗薇閱讀 565評(píng)論 0 0
  • 快樂(lè)不是獨(dú)角戲趁耗!
    事說(shuō)新語(yǔ)閱讀 124評(píng)論 0 2