如何用Python網(wǎng)絡(luò)爬蟲獲取頭條所有好友信息?
前言
大家好,我是黃偉。今日頭條我發(fā)覺(jué)做的挺不錯(cuò),啥都不好爬,出于好奇心的驅(qū)使,小編想獲取到自己所有的頭條好友,
看似簡(jiǎn)單,那么情況確實(shí)是這樣嗎,下面我們來(lái)看下吧。
項(xiàng)目目標(biāo)
獲取所有頭條好友昵稱
項(xiàng)目實(shí)踐
編輯器:sublime text 3
瀏覽器:360瀏覽器,順帶一個(gè)頭條號(hào)
實(shí)驗(yàn)步驟1.登陸自己的頭條號(hào):
可以看到2599,不知道誰(shuí)會(huì)是下一個(gè)幸運(yùn)觀眾了,哈哈哈哈哈,下面我們老樣子,打開瀏覽器,因?yàn)槲覀兪且@取到所有的好友啊,所以我們得先進(jìn)入粉絲列表看看有哪些粉絲吧:
然后右鍵--審查元素,來(lái)一波騷操作,定位粉絲的位置:
接下來(lái)我們要做的就是獲取粉絲的昵稱,從上面的圖可以看出我余下的粉絲都隱藏在ajax加載的動(dòng)態(tài)頁(yè)面中,如果我不進(jìn)行滾動(dòng)則看不到后面的粉絲,那怎么辦呢?不過(guò)不要緊,遇到問(wèn)題先不慌,淡定。
2.查找粉絲列表的接口
打開network:
然后你會(huì)發(fā)現(xiàn)有很多get_info_list 中文譯為獲取信息列表,我想這應(yīng)該很重要,打開一看:
媽媽耶,這啥玩意,嚇得我都不會(huì)說(shuō)話了。
3.加載所有請(qǐng)求
于是只好滿滿滾動(dòng)鼠標(biāo)滾輪期待發(fā)現(xiàn)點(diǎn)什么,終于,功夫不負(fù)苦心人,終于讓我滾到了有用的結(jié)果:
于是我在看看它的頭部信息,有重大發(fā)現(xiàn):
4.找接口分析內(nèi)容,轉(zhuǎn)換Unicode
可以看到用戶的昵稱使用Unicode碼表示,所以我們需要將他們轉(zhuǎn)換為中文,關(guān)于Unicode轉(zhuǎn)中文,兩種方法:
ss='u4e00u8defu5411u897f8635'print((ss.encode('utf8')).decode())print(eval('u"%s"' % ss))
沒(méi)毛病,老鐵。
5.獲取頁(yè)面文件
那我們現(xiàn)在就要獲取這個(gè)頁(yè)面的所有結(jié)果啦:
發(fā)現(xiàn)既然和結(jié)果不一樣,這是什么騷操作,好吧,我服了。
6.對(duì)頁(yè)面數(shù)據(jù)進(jìn)行猜解
通過(guò)對(duì)上上個(gè)圖的反復(fù)分析,我發(fā)現(xiàn)一個(gè)很重要的信息,那就是pagesize的值就等于當(dāng)前頁(yè)面所顯示的粉絲的數(shù)量,那小編有2599個(gè)粉絲,那pagesize不就是2599嗎?哈哈,說(shuō)干就干:
然后小編不斷對(duì)頁(yè)面的粉絲進(jìn)行請(qǐng)求:
發(fā)現(xiàn)還是不行啊,跟我們想的背道而馳,在試試,發(fā)現(xiàn)最多只有200才行的通:
其實(shí)這個(gè)情況下,已經(jīng)捕捉到所有請(qǐng)求了,只是那些粉絲每28個(gè)粉絲分為一個(gè)請(qǐng)求,而且每個(gè)請(qǐng)求的時(shí)間戳不一,其實(shí)我們可以用三方軟件來(lái)捕獲這些請(qǐng)求響應(yīng)然后將他們加入到程序中,我們好對(duì)他們進(jìn)行一個(gè)請(qǐng)求分析,最后將他們保存為json格式的文件,然后我們獲取到他們對(duì)應(yīng)的值。
7.打印粉絲名稱和響應(yīng)正常的網(wǎng)址
我們還可以將所有請(qǐng)求中cursor最小的值和最大值拿出來(lái)分析,通過(guò)查找我找到,
cursor取值:1570591241~1589072863
這個(gè)信息很重要,接下來(lái)我們就可以依次對(duì)這些cursor構(gòu)建請(qǐng)求了:
我們將所有能成功請(qǐng)求的頁(yè)面信息輸入到1.txt 文件中去,然后我們?cè)趯?duì)1.txt中的網(wǎng)頁(yè)內(nèi)容逐個(gè)讀取。然后我們獲取他們的json文件保存下來(lái),最后直接把他讀取出來(lái)就ok啦。由于時(shí)間的關(guān)系,在此我只演示上圖中出現(xiàn)的兩百條信息,我們把它保存為json文件然后用json 模塊進(jìn)行讀。
json是系統(tǒng)自帶的模塊,所以直接導(dǎo)入json模塊并讀取文件:
終于全部打印出來(lái)啦,哈哈哈,然后我們就可以去獲取我們自己關(guān)注了哪些人,如果有人把我們?nèi)∠P(guān)注了,那么我們也相應(yīng)取消對(duì)他們的關(guān)注。通過(guò)一段時(shí)間的爬取,終于爬的差不多了,不過(guò)我想應(yīng)該沒(méi)有爬完,因?yàn)榫W(wǎng)站有反爬:
項(xiàng)目總結(jié)
通過(guò)對(duì)今日頭條ajax和一些加密數(shù)據(jù)的一些情況使我認(rèn)識(shí)到爬蟲這條路真的很遠(yuǎn),不學(xué)js逆向是不可能的。希望大家多多學(xué)習(xí),學(xué)無(wú)止境的。

發(fā)表評(píng)論
請(qǐng)輸入評(píng)論內(nèi)容...
請(qǐng)輸入評(píng)論/評(píng)論長(zhǎng)度6~500個(gè)字
圖片新聞
-
馬云重返一線督戰(zhàn),阿里重啟創(chuàng)始人模式
-
機(jī)器人奧運(yùn)會(huì)戰(zhàn)報(bào):宇樹機(jī)器人摘下首金,天工Ultra搶走首位“百米飛人”
-
存儲(chǔ)圈掐架!江波龍起訴佰維,索賠121萬(wàn)
-
長(zhǎng)安汽車母公司突然更名:從“中國(guó)長(zhǎng)安”到“辰致科技”
-
豆包前負(fù)責(zé)人喬木出軌BP后續(xù):均被辭退
-
字節(jié)AI Lab負(fù)責(zé)人李航卸任后返聘,Seed進(jìn)入調(diào)整期
-
員工持股爆雷?廣汽埃安緊急回應(yīng)
-
中國(guó)“智造”背后的「關(guān)鍵力量」
最新活動(dòng)更多
-
10月23日火熱報(bào)名中>> 2025是德科技創(chuàng)新技術(shù)峰會(huì)
-
10月23日立即報(bào)名>> Works With 開發(fā)者大會(huì)深圳站
-
10月24日立即參評(píng)>> 【評(píng)選】維科杯·OFweek 2025(第十屆)物聯(lián)網(wǎng)行業(yè)年度評(píng)選
-
即日-11.25立即下載>>> 費(fèi)斯托白皮書《柔性:汽車生產(chǎn)未來(lái)的關(guān)鍵》
-
11月27日立即報(bào)名>> 【工程師系列】汽車電子技術(shù)在線大會(huì)
-
12月18日立即報(bào)名>> 【線下會(huì)議】OFweek 2025(第十屆)物聯(lián)網(wǎng)產(chǎn)業(yè)大會(huì)
推薦專題
-
10 每日AI全球觀察
- 1 特斯拉工人被故障機(jī)器人打成重傷,索賠3.6億
- 2 【行業(yè)深度研究】退居幕后四年后,張一鳴終于把算法公司變成AI公司?
- 3 AI 時(shí)代,阿里云想當(dāng)“安卓” ,那誰(shuí)是“蘋果”?
- 4 硬剛英偉達(dá)!華為發(fā)布全球最強(qiáng)算力超節(jié)點(diǎn)和集群
- 5 拐點(diǎn)已至!匯川領(lǐng)跑工控、埃斯頓份額第一、新時(shí)達(dá)海爾賦能扭虧為盈
- 6 隱退4年后,張一鳴久違現(xiàn)身!互聯(lián)網(wǎng)大佬正集體殺回
- 7 00后華裔女生靠?jī)刹緼I電影狂賺7.8億人民幣,AI正式進(jìn)軍好萊塢
- 8 谷歌“香蕉”爆火啟示:國(guó)產(chǎn)垂類AI的危機(jī)還是轉(zhuǎn)機(jī)?
- 9 機(jī)器人9月大事件|3家國(guó)產(chǎn)機(jī)器人沖刺IPO,行業(yè)交付與融資再創(chuàng)新高!
- 10 美光:AI Capex瘋投不止,終于要拉起存儲(chǔ)超級(jí)周期了?
- 生產(chǎn)部總監(jiān) 廣東省/廣州市
- 資深管理人員 廣東省/江門市
- Regional Sales Manager 廣東省/深圳市
- 銷售總監(jiān) 廣東省/深圳市
- 結(jié)構(gòu)工程師 廣東省/深圳市
- 光器件研發(fā)工程師 福建省/福州市
- 自動(dòng)化高級(jí)工程師 廣東省/深圳市
- 技術(shù)專家 廣東省/江門市
- 激光器高級(jí)銷售經(jīng)理 上海市/虹口區(qū)
- 封裝工程師 北京市/海淀區(qū)