Python采集某評論區(qū)內(nèi)容的實現(xiàn)示例
前言
我們知道在這個互聯(lián)網(wǎng)時代,評論已經(jīng)在我們的生活到處可見,評論區(qū)里面的信息是一個非常有趣和有爭議的地方。我們今天,就來獲取某技術(shù)平臺的評論,和大家分享一下,我獲取數(shù)據(jù)的過程,也是一個嘗試的過程。
發(fā)送請求
我們首先,確定我們要獲取哪一個文章下面的評論區(qū)。我們先使用開發(fā)者工具,定位到我們要的數(shù)據(jù)。
我們通過數(shù)據(jù)抓取,我們發(fā)現(xiàn),這個平臺的評論區(qū)數(shù)據(jù),放在了一個叫getlist
數(shù)據(jù)包里面了。
我們就不難明白,我們只要請求這個url
,在傳一個關(guān)于文章的參數(shù),我們就能獲取到我們想要的數(shù)據(jù)。而且,我們發(fā)現(xiàn),這個是post請求。我們先按正常思路寫代碼。
import requests url = 'https://xie.infoq.cn/public/v1/comment/getList' headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36', } res = requests.post(url,headers=headers) print(res)
我們發(fā)現(xiàn)返回了一個<Response [451]>
的值,我們可能就是少穿了參數(shù),我們接下來,把參數(shù)加上試試。
data = { 'id': "594899140323389440", 'score': '1682043841339',# 1681968121323 'size': '100', }
我們發(fā)現(xiàn)還是不行,所以,我們想到了,這個要加一個防盜鏈。我們把相應(yīng)的參數(shù)傳進去,我們再來看看效果。
headers ={ 'Host': 'xie.infoq.cn', 'Origin': 'https://xie.infoq.cn', 'Referer': 'https://xie.infoq.cn/article/a5f16dffb45139cba72691c29', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36', } res = requests.post(url,data = data,headers=headers)
我們發(fā)現(xiàn)雖然返回了<Response [200]>
,但是,我們還是拿不到數(shù)據(jù),我們看看服務(wù)器給我們返回了什么樣子的數(shù)值。
{"code":-1,"data":{},"error":{"code":-2005,"msg":"ID不能為空"},"extra":{"cost":0.000170465,"request-id":"7c1dc236c95aceb9e56da271b056be88@2@infoq"}}
它提示我們"msg":"ID不能為空"
,說明我們data傳入傳錯了。
不難看出,就是我們的文章id沒有傳進去,可能是我們傳遞的參數(shù)方式錯了,我們這里要注意,要用json
格式傳參。正確的請求方式如下:
res = requests.post(url,json = data,headers=headers)
我們發(fā)現(xiàn),就可以獲取到了數(shù)據(jù),在這個過程,我們不斷的嘗試,最后,也拿到了我們想要的數(shù)據(jù),我們會不會有一些成就感。我們看看獲取到了什么樣子的數(shù)據(jù)吧。
拿到了,這樣的數(shù)據(jù),大家就不難拿到我們要的數(shù)據(jù),直接字典取值就好了,今天,我們用了大篇幅的段落,來解釋我們是如何獲取數(shù)據(jù)的。
解析數(shù)據(jù)
我們接下來就可以解析數(shù)據(jù)了,代碼很簡單。我這里直接獲取評論了,不獲取評論者了,原理是一樣的,大家感興趣的可以自己去試試。
datas = res.json()['data']['list'] for contents in datas: content = contents['content'] print(content)
這段代碼將從 res.json()['data']['list']
中獲取數(shù)據(jù),并將其存儲在 datas
變量中。然后,它使用一個 for
循環(huán)遍歷 datas
中的每個元素,并將每個元素的 content
屬性存儲在 content
變量中。最后,它打印出每個元素的 content
屬性。
我們直接看效果,這個很簡單的。
總結(jié)
到此這篇關(guān)于Python采集某評論區(qū)內(nèi)容的實現(xiàn)示例的文章就介紹到這了,更多相關(guān)Python采集某評論區(qū)內(nèi)容內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python的pandas工具包,保存.csv文件時不要表頭的實例
今天小編小編就為大家分享一篇python的pandas工具包,保存.csv文件時不要表頭的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-06-06關(guān)于python與opc ua Expert endpoint連接的問題
這篇文章主要介紹了關(guān)于python與opc ua Expert endpoint連接的問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-02-02詳解將Python程序(.py)轉(zhuǎn)換為Windows可執(zhí)行文件(.exe)
這篇文章主要介紹了詳解將Python程序(.py)轉(zhuǎn)換為Windows可執(zhí)行文件(.exe),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-07-07Python讀取Excel數(shù)據(jù)實現(xiàn)批量生成合同
Python在自動化辦公方面具有極大的優(yōu)勢,可以解決我們工作中遇到的很多重復(fù)性問題。本文將通過Python讀取Excel數(shù)據(jù)實現(xiàn)批量生成合同,需要的可以參考一下2022-05-05Python報錯之如何解決matplotlib繪圖中文顯示成框框問題
這篇文章主要介紹了Python報錯之如何解決matplotlib繪圖中文顯示成框框問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-09-09