成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

如何用Python抓抖音上的小姐姐

FingerLiu / 1663人閱讀

摘要:比如分鐘破譯朋友圈測(cè)試小游戲文章里用的方法但有些根本就沒有提供網(wǎng)頁端,比如今年火得不行的抖音。所以常用的方式就是通過在電腦上裝一些抓包軟件,將手機(jī)上的網(wǎng)絡(luò)請(qǐng)求全部顯示出來??偨Y(jié)下,重點(diǎn)是的抓取,關(guān)鍵是配置代理證書,難點(diǎn)是對(duì)請(qǐng)求的分析。

爬蟲的案例我們已講得太多。不過幾乎都是 網(wǎng)頁爬蟲 。即使有些手機(jī)才能訪問的網(wǎng)站,我們也可以通過 Chrome 開發(fā)者工具手機(jī)模擬 功能來訪問,以便于分析請(qǐng)求并抓取。(比如 3分鐘破譯朋友圈測(cè)試小游戲 文章里用的方法)

但有些 App 根本就沒有提供網(wǎng)頁端,比如今年火得不行的 抖音 。(網(wǎng)上有些教程也是用網(wǎng)頁手機(jī)模擬的方法,但此法現(xiàn)已失效。)

對(duì)于這種情況,我們能不能抓取?要怎么抓???今天就來分享一下。

手機(jī)抓包

本文的重點(diǎn)就在于 如何獲取手機(jī) App 發(fā)出的請(qǐng)求

手機(jī) App 不像電腦上的網(wǎng)頁能直接通過瀏覽器查看相關(guān)信息,在手機(jī)設(shè)備上也不方便使用工具一邊流量一邊調(diào)試。所以常用的方式就是通過在電腦上裝一些 “抓包”軟件 ,將手機(jī)上的網(wǎng)絡(luò)請(qǐng)求全部顯示出來。

那為什么電腦能看到手機(jī)上的網(wǎng)絡(luò)請(qǐng)求?這里就要提下“ 代理 ”這個(gè)概念。我們之前的文章 聽說你好不容易寫了個(gè)爬蟲,結(jié)果沒抓幾個(gè)就被封了? 中也講過代理。形象的解釋就是字面的理解: 所有你發(fā)出的請(qǐng)求不再是直接發(fā)到目的地,而是先發(fā)給這個(gè)代理,再由代理幫你發(fā)出 。所以通過代理,可以實(shí)現(xiàn) 隱藏 IP、進(jìn)入專用網(wǎng)絡(luò)、翻…咳咳那啥 等功能,也包括我們今天說的: 手機(jī)抓包

順帶說句,在公共場(chǎng)所別隨便連不確定的免費(fèi) wifi,理論上來說,人家也可以抓你的包。

這里,我們要用的工具是 Fiddler 。它是一個(gè)較成熟的免費(fèi)抓包工具??梢宰ト【W(wǎng)頁、桌面軟件、手機(jī) App 的網(wǎng)絡(luò)請(qǐng)求,并可以運(yùn)行在 Windows、Mac、Linux 平臺(tái)上,支持 iOS 和 Android。(雖說都支持,但強(qiáng)烈建議 Windows + Android ,后面我會(huì)有吐槽)

上周我們的送書活動(dòng)收到不少同學(xué)的項(xiàng)目和代碼,其中 @離島 同學(xué)提交了一個(gè) Fiddler 手機(jī)抓包的教程。  
https://segmentfault.com/a/1190000015571256
本文中部分內(nèi)容和圖片就轉(zhuǎn)自她這篇文章。她的博客上還有不少文章和學(xué)習(xí)筆記,可以關(guān)注交流。也歡迎其他同學(xué)給我們投稿。
下載安裝

搜索一下 fiddler 很容易找到它們的官網(wǎng) https://www.telerik.com/fiddler,點(diǎn)擊 download 下載即可(有個(gè)表格隨便填下)。

Windows 下載后正常安裝。如果是 Mac,還會(huì)有安裝步驟提示,告訴你需要先安裝一個(gè)叫做 Mono 的框架,以便可以執(zhí)行 Fiddler.exe。另外 Mac 版還有幾個(gè)小坑:

1. 運(yùn)行 mono 命令用 sudo

2. 如果報(bào)一堆錯(cuò)閃退,請(qǐng)用 mono --arch=32 Fiddler.exe(這個(gè)參數(shù)還必須放在文件名前面)

3. 第一次正確運(yùn)行時(shí),程序 會(huì)卡住很長時(shí)間 ,以至于我以為還是掛了,這時(shí)請(qǐng)耐心等待。(我要不是正好有事走開,回來發(fā)現(xiàn)成功了,可能就放棄嘗試了)

4. 即使正常運(yùn)行了,Mac 上界面也會(huì)有各種顯示的 bug,切記不要打開的彈窗的情況下切換程序,不然回來就找不到彈窗了……

5. 軟件中無法復(fù)制……

6. 在 iOS 上無法抓取 HTTPS 請(qǐng)求(這基本就是廢了),需要額外創(chuàng)建一個(gè)證書,但這個(gè)證書工具只能在 Windows 下運(yùn)行……

所以可以的話,還是用 Windows 來做。Mac 上還有個(gè)比較知名的工具 Charles ,有用過的可以留言評(píng)價(jià)下。

配置

安裝好工具后,需要做一些必要配置才能抓包。

1. Fiddler 配置

設(shè)置允許抓取 HTTPS 信息包。打開下載好的 fiddler,找到 Tools - > Options,然后在 HTTPS 的工具欄下勾選 Decrpt HTTPS traffic ,在新彈出的選項(xiàng)欄下勾選 Ignore server certificate errors 。這樣,fiddler 就會(huì)抓取到 HTTPS 的信息包。

設(shè)置允許外部設(shè)備發(fā)送 HTTP/HTTPS 到 fiddler。設(shè)置 端口號(hào) ,并在 Connections 選項(xiàng)欄下勾選 Allow remote computers to connect 。

配置好后需重啟軟件。

2. 設(shè)置手機(jī)代理

在抓包前,確保你的電腦和手機(jī)是在一個(gè) 可以互訪的局域網(wǎng)中 。最簡單的情況就是都連在同一個(gè) wifi 上,特殊情況這里不展開討論(有些商用 wifi 并不能互訪)。

打開軟件,鼠標(biāo)放在右上角的 Online 上可以看到 本機(jī)的 IP ?;蛘咭部梢酝ㄟ^命令行中的 ipconfig 命令(Mac/Linux 是 ifconfig )查看。(截圖僅為演示,以你自己的 IP 為準(zhǔn))

手機(jī)設(shè)置代理 IP。打開手機(jī) 無線網(wǎng)絡(luò)連接 ,選擇已經(jīng)連接的網(wǎng)絡(luò)連接,點(diǎn)擊一個(gè)小圓圈嘆號(hào)進(jìn)入可以看到下圖(安卓也類似),選擇 配置代理 ,進(jìn)入后把剛剛的 IP 地址 輸入進(jìn)去, 端口 就是 fiddler 中設(shè)置的 8888。

3. 安裝證書

獲取 HTTPS 請(qǐng)求必須要 驗(yàn)證證書 。電腦端訪問:http://localhost:8888/ 進(jìn)行安裝。

手機(jī)訪問前面設(shè)置的電腦的 IP 地址加端口 8888 訪問,比如圖中例子是:http://192.168.23.1:8888

有些安卓需要手動(dòng)從設(shè)置里進(jìn)入并導(dǎo)入證書,否則無法生效。

4. 測(cè)試

開啟 fiddler 的狀態(tài)下,打開手機(jī)隨便一個(gè) APP,應(yīng)對(duì)可以正常訪問,并且在 fiddler 中看到所發(fā)出的網(wǎng)絡(luò)請(qǐng)求。

如果能訪問但看不到請(qǐng)求,確認(rèn)下有沒有代理有沒有生效。如果不能訪問,檢查下證書是否都下載并驗(yàn)證。還是不行則按照上述步驟再仔細(xì)配置一遍。

分析請(qǐng)求

完成這一步之后,接下來的事情就和網(wǎng)頁爬蟲沒太大區(qū)別了。無非就是從這些請(qǐng)求中,找到我們需要的那幾個(gè)。

fiddler 里記錄的是所有請(qǐng)求,比較多。在操作 App 前,記得清空已有請(qǐng)求,方便觀察。然后再配合上 filter 篩選器 ,定義篩選規(guī)則,會(huì)較容易找你需要的內(nèi)容。找到請(qǐng)求后,在軟件里查看你要的信息,或者右鍵點(diǎn)擊選擇將請(qǐng)求導(dǎo)出。

經(jīng)過操作+觀察,可以定位到獲取用戶上傳視頻列表的請(qǐng)求是


https://api.amemv.com/aweme/v1/aweme/post/?…

WebForms 欄里可以查看請(qǐng)求的詳細(xì)參數(shù)信息。返回值是一個(gè)組 JSON 數(shù)據(jù),里面包含了視頻的下載地址。

這是一個(gè)需要經(jīng)驗(yàn)積累的活兒,不同的網(wǎng)站/App,規(guī)則都不一樣,但套路是相似的。對(duì)網(wǎng)頁爬蟲還不熟悉的話,先看看之前的文章 爬蟲必備工具,掌握它就解決了一半的問題。

代碼抓取

得到地址之后,經(jīng)過在瀏覽器和代碼里的一番嘗試,找到了此請(qǐng)求的正確解鎖方式:

1. 需要提供以下參數(shù):max_cursor=0&user_id=94763945245&count=20&aid=1128,其中 user_id 是你要抓取的用戶 ID,其他參數(shù)都可以固定不用改。

2. 需要使用手機(jī)的 User-Agent ,最簡單的就是 {"user-agent": "mobile"}

請(qǐng)求代碼:


import requests as rs
uid = 94763945245
url = "https://api.amemv.com/aweme/v1/aweme/post/?max_cursor=0&user_id=%d&count=20&aid=1128" % uid
h = {"user-agent": "mobile"}
req = rs.get(url, headers=h, verify=False)
data = req.json()
print(data)

uid 替換成你想抓的用戶 ID。獲取用戶 ID 有個(gè)簡單方法:在用戶頁面選擇分享,鏈接發(fā)到微信上,從網(wǎng)頁打開就可以看到 user_id。

提取視頻列表并下載:


import urllib.request
for video in data["aweme_list"]:
    name = video["desc"] or video["aweme_id"]    
    url_v = video["video"]["download_addr"]["url_list"][0]
    print(name, url_v, "
")
    urllib.request.urlretrieve(url_v, name + ".mp4")

此方法截止國慶假期還是有效的,可以通過 Chrome 開發(fā)者工具進(jìn)行模擬。之后能使用多久這就沒法保證了,爬蟲代碼都不會(huì)是一勞永逸的。

總結(jié)下,重點(diǎn)是 fiddler 的抓取 ,關(guān)鍵是 配置、代理、證書 ,難點(diǎn)是 對(duì)請(qǐng)求的分析 。最終代碼只有簡單兩步, 獲取視頻列表、下載視頻 。

所有代碼其實(shí)就上面兩段,也上傳了,獲取地址請(qǐng)?jiān)诠娞?hào)( Crossin的編程教室 )回復(fù)關(guān)鍵字 抖音
想看其他十多個(gè)項(xiàng)目代碼實(shí)例(電影票、招聘、貪吃蛇、代理池等),回復(fù)關(guān)鍵字 項(xiàng)目

下課!

════
其他文章及回答:
如何自學(xué)Python | 新手引導(dǎo) | 精選Python問答 | 如何debug? | Python單詞表 | 知乎下載器 | 人工智能 | 嘻哈 | 爬蟲 | 我用Python | 高考 | requests | AI平臺(tái)

歡迎微信搜索及關(guān)注: Crossin的編程教室

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/42629.html

相關(guān)文章

  • 文章內(nèi)容提取庫 goose 簡介

    摘要:是一個(gè)文章內(nèi)容提取器,可以從任意資訊文章類的網(wǎng)頁中提取文章主體,并提取標(biāo)題標(biāo)簽摘要圖片視頻等信息,且支持中文網(wǎng)頁。 爬蟲抓取數(shù)據(jù)有兩個(gè)頭疼的點(diǎn),寫過爬蟲的小伙伴們一定都深有體會(huì): 網(wǎng)站的 防抓取 機(jī)制。你要盡可能將自己偽裝成一個(gè)人,騙過對(duì)方的服務(wù)器反爬驗(yàn)證。 網(wǎng)站的 內(nèi)容提取 。每個(gè)網(wǎng)站都需要你做不同的處理,而且網(wǎng)站一旦改版,你的代碼也得跟著更新。 第一點(diǎn)沒什么捷徑可走,套路見得多...

    keithxiaoy 評(píng)論0 收藏0
  • 送你個(gè)情人節(jié)禮物:Python抖音同款表白神器

    摘要:又到了一年一度的情人節(jié)大家都準(zhǔn)備送什么給自己心儀的對(duì)象呢鮮花巧克力都太俗套了,今天給大家?guī)硪粋€(gè)抖音上看到的表白神器用寫一個(gè)告白程序,讓她看到你滿滿的愛意。 又到了一年一度的情人節(jié)!大家都準(zhǔn)備送什么給自己心儀的對(duì)象呢? 鮮花、巧克力都太俗套了,今天給大家?guī)硪粋€(gè)抖音上看到的表白神器 — 用Python寫一個(gè)告白程序,讓她看到你滿滿的愛(tao)意(lu)。 先上效果: showImg(...

    shiweifu 評(píng)論0 收藏0
  • Python 頂級(jí)開源項(xiàng)目 Top 10

    摘要:可以說是每個(gè)程序每天必逛的網(wǎng)站,這里集聚了全球最頂級(jí)的程序員。有非常多的大公司在上面開源自己的項(xiàng)目。今天整理了個(gè)上頂級(jí)的開源項(xiàng)目。這是推出的一款性能類型檢查工具。它的主要目標(biāo)是快速輕松地分發(fā)應(yīng)用程序。 showImg(https://segmentfault.com/img/remote/1460000015909645); 閱讀文本大概需要 4.2 分鐘。 GitHub 可以說是每個(gè)...

    cangck_X 評(píng)論0 收藏0
  • 我用Python爬取了女神視界,爬蟲之路永無止境「內(nèi)附源碼」

    摘要:我發(fā)現(xiàn)抖音上很多小姐姐就拍個(gè)跳舞的視頻就火了,大家是沖著舞蹈水平去的嗎,都是沖著顏值身材去的,能刷到這篇文章的都是了,我就跟大家不一樣了,一個(gè)個(gè)刷太麻煩了,我直接爬下來看個(gè)夠,先隨意展示兩個(gè)。 我發(fā)現(xiàn)抖音上很多小姐姐就拍個(gè)跳舞的視頻就火了,大家是沖著舞蹈水平去的嗎,都是沖著顏值身材去的,能刷...

    niuxiaowei111 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<