W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗(yàn)值獎勵(lì)
本文轉(zhuǎn)載至知乎ID:Charles(白露未晞)知乎個(gè)人專欄
下載W3Cschool手機(jī)App,0基礎(chǔ)隨時(shí)隨地學(xué)編程>>戳此了解
翻了翻之前關(guān)于爬蟲的文章。。。
似乎一直在欺負(fù)小網(wǎng)站,沒什么挑戰(zhàn)性。。。
那么,就來“試水”一波TX吧~~~
本著細(xì)水長流(偷懶)的原則T_T,這期文章我決定拆成兩篇寫。第一篇主要解決QQ空間的登錄問題并嘗試抓取一些信息,第二篇致力于抓取QQ空間的好友信息并做可視化分析。
讓我們愉快地開始吧~~~
百度網(wǎng)盤下載鏈接: https://pan.baidu.com/s/1D3C5cSp7YhuTooPJa7znjw
密碼: yccp
Python版本:3.6.4
相關(guān)模塊:
requests模塊;
selenium模塊;
lxml模塊;
以及一些Python自帶的模塊。
安裝Python并添加到環(huán)境變量,pip安裝需要的相關(guān)模塊,并前往:
http://npm.taobao.org/mirrors/chromedriver/
下載與自己使用的Chrome瀏覽器版本對應(yīng)的驅(qū)動文件,下載完畢后將chromedriver.exe所在文件夾添加到環(huán)境變量中即可。
本文主要解決QQ空間的登錄問題。
其主要思路為:
利用selenium模擬登錄QQ空間從而獲取登錄QQ空間所需的cookie值,這樣就可以利用requests模塊來抓取QQ空間的數(shù)據(jù)了。
為什么這么繞?
selenium好久不用,寫起來太慢了。而且它本身速度和資源占用等問題一直為大家所詬病。
And 省略無數(shù)條理由。
一些細(xì)節(jié):
(1)第一次獲取cookie之后將其保存下來,下次再登錄之前先試試保存的cookie有沒有用,有用直接使用就可以了,這樣可以進(jìn)一步節(jié)省時(shí)間。
(2)抓包分析過程中,可以發(fā)現(xiàn)抓取QQ空間數(shù)據(jù)所需請求的鏈接都包含g_tk這個(gè)參數(shù),這個(gè)參數(shù)實(shí)際上是使用cookie中的skey參數(shù)計(jì)算獲得的,懶得打公式了,直接貼一小段代碼吧:
最后:
不抓點(diǎn)數(shù)據(jù)好像不能證明這篇文章真的有用?
好吧,那就把:
扒下來吧~~~
具體實(shí)現(xiàn)過程詳見相關(guān)文件中的源代碼。
QQ號(username)和密碼(password):
在QQ_Spider.py文件中填寫,位置如下圖所示:
運(yùn)行:
在cmd窗口運(yùn)行QQ_Spider.py文件即可。
結(jié)果:
That's All.
在本期基礎(chǔ)上抓取好友的個(gè)人信息,并可視化分析抓取的結(jié)果。有興趣的小伙伴可以提前試試~~~
事實(shí)上,微調(diào)本文所提供的代碼,理論上是可以抓取QQ所有用戶的信息的。當(dāng)然,只是理論上,以及干很多有趣的事情。
T_T作為一個(gè)不搞事且不愛喝茶的boy,上述的理論我就不負(fù)責(zé)實(shí)現(xiàn)了。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: