您好,登錄后才能下訂單哦!
本篇文章為大家展示了Python 怎么爬取微博樹(shù)洞,內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過(guò)這篇文章的詳細(xì)介紹希望你能有所收獲。
尤其是對(duì)于我這種需求量比較大的項(xiàng)目。不過(guò)好在最后發(fā)現(xiàn)了突破口:“微博樹(shù)洞”。“微博樹(shù)洞”是指宣告了自殺行為的過(guò)世的人的微博,其留言區(qū)成為成千上萬(wàn)的抑郁癥或是絕望的人的歸屬,在其下方發(fā)布許多負(fù)能量甚至是尋死的宣言。
比如走飯的微博:
微博評(píng)論的數(shù)據(jù)接口有兩種,一種是手機(jī)版、一種是PC版。手機(jī)版能爬到的數(shù)據(jù)僅僅只有十五頁(yè),因此我們從PC版入手,先來(lái)看看PC版的接口怎么找,長(zhǎng)啥樣兒。
首先,在當(dāng)前微博的頁(yè)面右鍵—檢查(F12)打開(kāi)開(kāi)發(fā)者工具,然后按照下圖的步驟進(jìn)行操作(選擇NetWork—選擇XHR—隨便點(diǎn)擊另一個(gè)評(píng)論頁(yè)—查看右側(cè)新增的請(qǐng)求):
然后我們看新增的請(qǐng)求,你會(huì)發(fā)現(xiàn)在Preview中能看到格式化后的數(shù)據(jù),而且里面有個(gè)html,仔細(xì)觀察這個(gè)html你會(huì)發(fā)現(xiàn)這個(gè)就是評(píng)論列表的數(shù)據(jù)。我們僅需要將這個(gè)html解析出來(lái)即可。
再看看get請(qǐng)求的URL:
https://weibo.com/aj/v6/comment/big?ajwvr=6&id=3424883176420210&page=2&__rnd=1573219876141
ajwvr是一個(gè)固定值為6、id是指想要爬取評(píng)論的微博id、page是指第幾頁(yè)評(píng)論、_rnd是請(qǐng)求時(shí)的毫秒級(jí)時(shí)間戳。
不過(guò)微博是要求登錄才能看更多評(píng)論的,因此我們需要先訪問(wèn)微博,拿到cookie的值才能開(kāi)始爬。
關(guān)注文章最下方的Python實(shí)用寶典,回復(fù)微博評(píng)論爬蟲即可獲得本項(xiàng)目的完整源代碼。
設(shè)定四個(gè)參數(shù):
設(shè)定cookie:
發(fā)送請(qǐng)求并解析數(shù)據(jù):
解析這串HTML中我們所需要的數(shù)據(jù),這里用到了XPATH,如果你還不了解XPATH,可以看這篇文章《學(xué)爬蟲利器XPath,看這一篇就夠了》:
https://zhuanlan.zhihu.com/p/29436838
其中寫入文件的函數(shù)和下載圖片的函數(shù)如下:
以上就是我們所用到的代碼。在公眾號(hào)后臺(tái)回復(fù) 微博評(píng)論爬蟲 即可下載完整源代碼(附手機(jī)版爬蟲)。
盡管如此,我們得到的數(shù)據(jù)還是不夠,PC版的微博評(píng)論頁(yè)面也僅僅支持爬到第五十頁(yè),第五十一頁(yè)后就拿不到數(shù)據(jù)了,如圖:
不過(guò),走飯這個(gè)微博真的很多人回復(fù),一天的數(shù)據(jù)就差不多50頁(yè)了,我們可以通過(guò)每天定時(shí)爬50頁(yè)來(lái)獲取數(shù)據(jù)。linux系統(tǒng)可以使用crontab定時(shí)腳本實(shí)現(xiàn),windows系統(tǒng)可以通過(guò)計(jì)劃任務(wù)實(shí)現(xiàn):
https://blog.csdn.net/wwy11/article/details/51100432
這里講講crontab實(shí)現(xiàn)方法。
假設(shè)你的Python存放在/usr/bin/且將腳本命名為weibo.py 存放在home中,在終端輸入crontab -e后,在最后面增加上這一條語(yǔ)句即可:
0 0 * * * /usr/bin/python /home/weibo.py
上述內(nèi)容就是Python 怎么爬取微博樹(shù)洞,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。