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