Python采集某評(píng)論區(qū)內(nèi)容的實(shí)現(xiàn)示例
前言
我們知道在這個(gè)互聯(lián)網(wǎng)時(shí)代,評(píng)論已經(jīng)在我們的生活到處可見,評(píng)論區(qū)里面的信息是一個(gè)非常有趣和有爭議的地方。我們今天,就來獲取某技術(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ù),我們接下來,把參數(shù)加上試試。
data = {
'id': "594899140323389440",
'score': '1682043841339',# 1681968121323
'size': '100',
}我們發(fā)現(xiàn)還是不行,所以,我們想到了,這個(gè)要加一個(gè)防盜鏈。我們把相應(yīng)的參數(shù)傳進(jìn)去,我們再來看看效果。
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ù),直接字典取值就好了,今天,我們用了大篇幅的段落,來解釋我們是如何獲取數(shù)據(jù)的。
解析數(shù)據(jù)
我們接下來就可以解析數(shù)據(jù)了,代碼很簡單。我這里直接獲取評(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é)
到此這篇關(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如何使用內(nèi)置庫matplotlib繪制折線圖
這篇文章主要介紹了Python如何使用內(nèi)置庫matplotlib繪制折線圖,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-02-02
Windows下Eclipse+PyDev配置Python+PyQt4開發(fā)環(huán)境
這篇文章主要介紹了Windows下Eclipse+PyDev配置Python+PyQt4開發(fā)環(huán)境的相關(guān)資料,需要的朋友可以參考下2016-05-05
python實(shí)現(xiàn)簡單tftp(基于udp協(xié)議)
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)簡單tftp,基于udp協(xié)議,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-07-07
python利用logging模塊實(shí)現(xiàn)根據(jù)日志級(jí)別打印不同顏色日志的代碼案例
tensorflow 用矩陣運(yùn)算替換for循環(huán) 用tf.tile而不寫for的方法
Python?實(shí)現(xiàn)一個(gè)全連接的神經(jīng)網(wǎng)絡(luò)
Python實(shí)現(xiàn)二分查找算法實(shí)例

