python爬蟲實(shí)戰(zhàn)——人人網(wǎng)大作戰(zhàn)

這兩天實(shí)在是被畢設(shè)折磨的夠嗆!哎情组,經(jīng)常在卡殼燥筷,寫一點(diǎn),再卡殼院崇,再寫一點(diǎn)的循環(huán)中慢慢前進(jìn)肆氓。老崔死催著十號(hào)前交稿,真是焦頭爛額亚脆。今天就換換腦子做院,做一點(diǎn)好玩的事兒。干什么呢?來(lái)爬一爬人人網(wǎng)吧键耕,看看能不能找出一些有意思的東西來(lái)寺滚。

人人網(wǎng)作為一個(gè)過(guò)氣的社交網(wǎng)站,其用戶數(shù)據(jù)還是比較可觀的屈雄。之所以選擇人人網(wǎng)的一個(gè)原因是村视,人人網(wǎng)不像QQ空間一樣中二:你可以禁止你的好友訪問(wèn)你的空間。那么酒奶,開(kāi)始吧蚁孔!

由于人人網(wǎng)沒(méi)有類似于微博大廳的功能,所有的數(shù)據(jù)必須要登錄以后才能看到惋嚎。我又不是什么黑客干壞事杠氢,光明正大的去,就登陸我自己的賬號(hào)另伍。

由于不知道人人網(wǎng)這個(gè)登錄后臺(tái)是怎么做的鼻百,所以登陸的同時(shí)我們需要抓個(gè)包,看看HTTP頭里面帶了多少cookie摆尝。在這里筆者用的抓包軟件是wireshark温艇。



真是巧,第12個(gè)數(shù)據(jù)包就是登錄包堕汞。右鍵看一下完整的通信記錄勺爱。



由于不知道這一大串cookie中具體是哪一個(gè)或哪幾個(gè)做登錄驗(yàn)證用,就干脆把這些cookie全部拷貝到程序中去讯检。至于下面的那一串POST方式提交的數(shù)據(jù)就不用管了琐鲁。



接著,我們觀察一下人人網(wǎng)的個(gè)人界面吧视哑,看看有沒(méi)有我們感興趣的信息绣否。隨意找一個(gè)好友的主頁(yè)登陸進(jìn)去誊涯,我們可以發(fā)現(xiàn)人人網(wǎng)可以查看任意好友的全部好友信息挡毅。如下圖,我選取了我人人好友中的一個(gè)公眾號(hào)“交大有思”來(lái)舉例子暴构。



通過(guò)瀏覽器右鍵查看網(wǎng)頁(yè)源代碼我們可以發(fā)現(xiàn)網(wǎng)頁(yè)中并沒(méi)有這些好友信息的靜態(tài)信息跪呈,說(shuō)明這些好友信息一定是通過(guò)網(wǎng)頁(yè)上的腳本代碼動(dòng)態(tài)獲取的。怎么證實(shí)呢取逾?我們還是來(lái)抓個(gè)包吧耗绿。通常這種異步獲取信息的腳本代碼都是通過(guò)調(diào)用網(wǎng)站后臺(tái)的某個(gè)api來(lái)實(shí)現(xiàn)的,有些不注重用戶隱私的公司就直接把這些信息在網(wǎng)絡(luò)上明文傳送砾隅。像這種api通常都會(huì)有一個(gè)比較通俗易懂的名字误阻,例如getfriendslist這種。



果然,在第443個(gè)數(shù)據(jù)包中找到了一個(gè)疑似的究反。從命名上看這太像我們所要找的那個(gè)接口了寻定。我們右鍵看一下完整的通信記錄,來(lái)確認(rèn)一下我們的猜想精耐。



服務(wù)器針對(duì)這個(gè)接口調(diào)用返回的數(shù)據(jù)是一堆亂碼狼速。但是光憑這一堆亂碼我們也能看得出來(lái),人人網(wǎng)的這個(gè)接口的數(shù)據(jù)是完全沒(méi)有加密的卦停,之所以出現(xiàn)亂碼是因?yàn)榫幋a格式的錯(cuò)誤向胡。這并不是什么大問(wèn)題,通常用瀏覽器調(diào)用一次就能夠解決惊完。我們仔細(xì)觀察了這個(gè)接口所需要的參數(shù)以后直接用瀏覽器調(diào)用看看結(jié)果僵芹。在這里筆者調(diào)用接口打印自己好留列表的前20個(gè)好友的基本信息。



如上圖小槐,人人網(wǎng)果然是這樣一種節(jié)奏:所有的用戶信息完全不加密淮捆,赤身裸體地在網(wǎng)絡(luò)上飛奔,而且還是這么格式良好的json數(shù)據(jù)本股,真是呵呵呵攀痊!這個(gè)接口的調(diào)用很簡(jiǎn)單,只用傳入人人網(wǎng)的ID拄显,數(shù)據(jù)的分頁(yè)信息和一些登錄驗(yàn)證信息就可以了苟径。接下來(lái),我們用python程序來(lái)調(diào)用這個(gè)接口試試看躬审,還是調(diào)用接口打印我自己的全部人人好友棘街。



如圖,整個(gè)接口調(diào)用成功承边,json數(shù)據(jù)解析成功遭殉。該函數(shù)通過(guò)傳入用戶的ID值可以打印出這個(gè)用戶全部的好友基本信息,為了保護(hù)隱私筆者將用戶ID數(shù)據(jù)全部隱去了博助。仔細(xì)觀察一下這些用戶基本數(shù)據(jù)吧险污,上面除了一些不知所云的字段以外還有一些很有意思的信息。



這些信息中包含了用戶的大頭像圖片地址富岳,小頭像圖片地址蛔糯,真實(shí)的姓名,與查詢用戶是否為好友關(guān)系窖式,基礎(chǔ)的學(xué)校地區(qū)信息等等蚁飒。一些牛掰的黑客僅僅依靠這些基礎(chǔ)的數(shù)據(jù)完全就可以完成一次社會(huì)工程學(xué)實(shí)踐,這對(duì)個(gè)人信息保護(hù)來(lái)說(shuō)是一個(gè)很大的安全隱患萝喘。OK淮逻,接下來(lái)我們來(lái)驗(yàn)證一下著名的“六度分割”理論吧琼懊,這理論是說(shuō)在現(xiàn)代社會(huì),不論兩個(gè)人物理上相隔多遠(yuǎn)爬早,都可以通過(guò)至多六個(gè)人建立聯(lián)系肩碟。今天,我們就來(lái)遍歷一下我們?nèi)亢糜训暮糜淹勾唬匆幌逻@個(gè)人際關(guān)系樹(shù)僅僅深入到第二層能達(dá)到多大的規(guī)模削祈。在編程上,我們使用遞歸脑漫。使用一個(gè)集合來(lái)存儲(chǔ)所有遍歷到的用戶信息髓抑。由于集合的特殊性質(zhì):集合不能存儲(chǔ)兩個(gè)相同的數(shù)據(jù)。因此我們就避免了重復(fù)統(tǒng)計(jì)一個(gè)人信息的問(wèn)題优幸。實(shí)驗(yàn)的結(jié)果非常驚人吨拍,僅僅是筆者人人網(wǎng)好友圈的71個(gè)好友的所有好友就達(dá)到了12726人,幾乎是以指數(shù)2的級(jí)別向上增長(zhǎng)网杆。



都到這兒了就再進(jìn)一步吧羹饰,通過(guò)csv文件將所有的這些用戶信息保存下來(lái),并且將筆者71個(gè)好友的全部好友的用戶頭像都保存下來(lái)碳却。





接下來(lái)队秩,我們還可以遍歷所有好友的相冊(cè)。人人網(wǎng)在這里又為爬蟲提供了非常好的便利機(jī)會(huì)昼浦。不但用戶的相冊(cè)信息在網(wǎng)頁(yè)上靜態(tài)寫明馍资,毫無(wú)加密,而且還是便于解析的json格式关噪。以下是筆者公眾號(hào)好友“交大有思”的全部相冊(cè)信息:



獲取了這些信息后只用解析json數(shù)據(jù)鸟蟹,然后就可以對(duì)相冊(cè)中的相片進(jìn)行下載了。噗~使兔,寫到這筆者就不打算繼續(xù)下去了建钥。這次的博客就到這兒吧!以后看到好玩的網(wǎng)站還是會(huì)用爬蟲爬一爬虐沥。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末熊经,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子置蜀,更是在濱河造成了極大的恐慌奈搜,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,427評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件盯荤,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡焕盟,警方通過(guò)查閱死者的電腦和手機(jī)秋秤,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,551評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門宏粤,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人灼卢,你說(shuō)我怎么就攤上這事绍哎。” “怎么了鞋真?”我有些...
    開(kāi)封第一講書人閱讀 165,747評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵崇堰,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我涩咖,道長(zhǎng)海诲,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書人閱讀 58,939評(píng)論 1 295
  • 正文 為了忘掉前任檩互,我火速辦了婚禮特幔,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘闸昨。我一直安慰自己蚯斯,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,955評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布饵较。 她就那樣靜靜地躺著拍嵌,像睡著了一般。 火紅的嫁衣襯著肌膚如雪循诉。 梳的紋絲不亂的頭發(fā)上撰茎,一...
    開(kāi)封第一講書人閱讀 51,737評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音打洼,去河邊找鬼龄糊。 笑死,一個(gè)胖子當(dāng)著我的面吹牛募疮,可吹牛的內(nèi)容都是我干的炫惩。 我是一名探鬼主播,決...
    沈念sama閱讀 40,448評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼阿浓,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼他嚷!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起芭毙,我...
    開(kāi)封第一講書人閱讀 39,352評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤筋蓖,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后退敦,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體粘咖,經(jīng)...
    沈念sama閱讀 45,834評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,992評(píng)論 3 338
  • 正文 我和宋清朗相戀三年侈百,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了瓮下。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片翰铡。...
    茶點(diǎn)故事閱讀 40,133評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖讽坏,靈堂內(nèi)的尸體忽然破棺而出锭魔,到底是詐尸還是另有隱情萨惑,我是刑警寧澤困乒,帶...
    沈念sama閱讀 35,815評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站幸乒,受9級(jí)特大地震影響胀葱,放射性物質(zhì)發(fā)生泄漏漠秋。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,477評(píng)論 3 331
  • 文/蒙蒙 一巡社、第九天 我趴在偏房一處隱蔽的房頂上張望膛堤。 院中可真熱鬧,春花似錦晌该、人聲如沸肥荔。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 32,022評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)燕耿。三九已至,卻和暖如春姜胖,著一層夾襖步出監(jiān)牢的瞬間誉帅,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,147評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工右莱, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留蚜锨,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,398評(píng)論 3 373
  • 正文 我出身青樓慢蜓,卻偏偏與公主長(zhǎng)得像亚再,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子晨抡,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,077評(píng)論 2 355

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

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,185評(píng)論 25 707
  • 社交紅利閱讀筆記 書名:社交紅利(修訂升級(jí)版) 作者:徐志斌 出版社:中信出版社 正文前筆記: 推薦序1摘要 社交...
    鳧水閱讀 8,944評(píng)論 4 26
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語(yǔ)法氛悬,類相關(guān)的語(yǔ)法,內(nèi)部類的語(yǔ)法耘柱,繼承相關(guān)的語(yǔ)法如捅,異常的語(yǔ)法,線程的語(yǔ)...
    子非魚_t_閱讀 31,644評(píng)論 18 399
  • 今年夏季聯(lián)賽窖剑,除了尤恩首次帶隊(duì)出現(xiàn)在賽場(chǎng)外坚洽,當(dāng)然也能看到今年?duì)钤髅伤购桶裱塾⒏窭返氖状蔚菆?chǎng)。 對(duì)剛進(jìn)入聯(lián)盟的新...
    zoneball閱讀 394評(píng)論 0 0
  • 詩(shī)說(shuō):從為了一顆美麗的種子西土,到詩(shī)中最后一首長(zhǎng)成了一棵大樹(shù)讶舰,是每一種情感在詩(shī)中的表現(xiàn)。愛(ài)情需了,親情跳昼,是緊竹詩(shī)中的兩大主...
    緊竹閱讀 305評(píng)論 0 0