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