Python采集電影評(píng)論實(shí)戰(zhàn)示例
數(shù)據(jù)采集
我們上一篇介紹了,如何采集王者皮膚,買(mǎi)不起皮膚,當(dāng)個(gè)桌面壁紙挺好的。我們今天來(lái)學(xué)習(xí)如何采集電影評(píng)論,看看這個(gè)電影好不好看。
發(fā)送請(qǐng)求
我們首先確定我們的目標(biāo)網(wǎng)址,對(duì)我們需要獲取的數(shù)據(jù)。

我們要把每一個(gè)評(píng)論獲取下來(lái),我們接下來(lái)用到開(kāi)發(fā)者工具。我們看評(píng)論是在什么位置。是不是在網(wǎng)頁(yè)源代碼中。接下來(lái),我們發(fā)送請(qǐng)求,獲取網(wǎng)頁(yè)源代碼。
url = 'https://movie.douban.com/subject/35267208/comments'
params = {
'start': f'{num}',
'limit': '20',
}
headers = {
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36',
}
res = requests.get(url, headers=headers, params=params)
print(res)
這段代碼中,我們首先定義了一個(gè) URL,然后使用 requests.get() 函數(shù)獲取該 URL 的數(shù)據(jù),并將其存儲(chǔ)在 res 變量中。最后,我們打印出 res 變量的值,即獲取到的數(shù)據(jù)。
在這個(gè)例子中,我們使用了 params 參數(shù)來(lái)指定獲取數(shù)據(jù)的起始位置和每頁(yè)顯示的記錄數(shù)。在這個(gè)例子中,我們指定了起始位置為第 num 條記錄,每頁(yè)顯示 limit 條記錄。
請(qǐng)注意,這個(gè)例子中使用的 user-agent 頭部是為了模擬瀏覽器的行為。在實(shí)際應(yīng)用中,我們應(yīng)該使用 User-Agent 頭部來(lái)指定我們的請(qǐng)求類(lèi)型,例如 requests.get() 函數(shù)默認(rèn)使用 'requests/2.18.4' 作為 User-Agent。
解析數(shù)據(jù)
我們還可以獲取其他信息,比如講,地區(qū),時(shí)間之類(lèi)的。

我們先解析數(shù)據(jù)。
selector = parsel.Selector(res.text)
info_lists = selector.css('div.comment-item')
這段代碼中,我們首先使用 parsel 庫(kù)中的 Selector 類(lèi)來(lái)解析 res.text 中的內(nèi)容,并將其轉(zhuǎn)換為 CSS 選擇器。然后,我們使用 css 方法來(lái)獲取 CSS 選擇器中的所有 div 元素,并將其存儲(chǔ)在 info_lists 變量中。
需要注意的是,parsel 庫(kù)中的 Selector 類(lèi)是一個(gè)比較底層的 CSS 解析器,它并不會(huì)對(duì) CSS 選擇器進(jìn)行任何優(yōu)化或轉(zhuǎn)換。因此,在使用 Selector 類(lèi)時(shí),我們需要確保輸入的 CSS 選擇器是有效的,并且不會(huì)包含任何無(wú)效的 CSS 屬性或值。
獲取內(nèi)容
for info_list in info_lists:
# print(info_list)
name = info_list.css('.comment-info a::text').get()
rating = info_list.css('.rating::attr(title)').get()
times = info_list.css('.comment-time::attr(title)').get()
area = info_list.css('.comment-location::text').get()
vote_count = info_list.css('.vote-count::text').get()
short = info_list.css('.short::text').get()
這段代碼中,我們使用 for 循環(huán)遍歷 info_lists 中的每一個(gè)元素,并使用 css 方法獲取該元素的 text 屬性值。然后,我們使用 get() 方法獲取該屬性值的 title 屬性值,并將其存儲(chǔ)在 name 變量中。接著,我們使用 get() 方法獲取該屬性值的 title 屬性值,并將其存儲(chǔ)在 rating 變量中。最后,我們使用 get() 方法獲取該屬性值的 title 屬性值,并將其存儲(chǔ)在 times 變量中。最后,我們使用 get() 方法獲取該屬性值的 title 屬性值,并將其存儲(chǔ)在 area 變量中。最后,我們使用 get() 方法獲取該屬性值的 title 屬性值,并將其存儲(chǔ)在 vote_count 變量中。最后,我們使用 get() 方法獲取該屬性值的 title 屬性值,并將其存儲(chǔ)在 short 變量中。
輸出內(nèi)容
print(name, rating, times, area, vote_count, short)
這段代碼中,我們使用 print() 函數(shù)打印出了名稱(chēng)、評(píng)分、時(shí)間、地點(diǎn)、投票數(shù)和簡(jiǎn)短描述。
總結(jié)
在這個(gè)例子中,我們使用了parsel庫(kù)中的 Selector 類(lèi)和 css 方法來(lái)獲取網(wǎng)頁(yè)中的 CSS 選擇器,并將其轉(zhuǎn)換為相應(yīng)的屬性值。我們還可以使用其他方法來(lái)解析數(shù)據(jù),例如使用 params 參數(shù)來(lái)指定獲取數(shù)據(jù)的起始位置和每頁(yè)顯示的記錄數(shù),使用 headers 參數(shù)來(lái)指定 User-Agent 頭部。我們還可以使用其他開(kāi)發(fā)者工具來(lái)獲取更多數(shù)據(jù),例如使用網(wǎng)頁(yè)源代碼來(lái)獲取網(wǎng)頁(yè)中的所有評(píng)論。
以上就是Python采集電影評(píng)論的詳細(xì)內(nèi)容,更多關(guān)于Python采集電影評(píng)論的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
ubuntu?20.04系統(tǒng)下如何切換gcc/g++/python的版本
這篇文章主要給大家介紹了關(guān)于ubuntu?20.04系統(tǒng)下如何切換gcc/g++/python版本的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用ubuntu具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-12-12
python+unittest+requests實(shí)現(xiàn)接口自動(dòng)化的方法
這篇文章主要介紹了python+unittest+requests實(shí)現(xiàn)接口自動(dòng)化的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-11-11
python刪除指定類(lèi)型(或非指定)的文件實(shí)例詳解
這篇文章主要介紹了python刪除指定類(lèi)型(或非指定)的文件,以實(shí)例形式較為詳細(xì)的分析了Python刪除文件的相關(guān)技巧,需要的朋友可以參考下2015-07-07
python使用Pandas導(dǎo)出數(shù)據(jù)并保存為CSV文件
Pandas是Python中用于數(shù)據(jù)分析和處理的強(qiáng)大庫(kù),它提供了靈活高效的數(shù)據(jù)結(jié)構(gòu),如DataFrame和Series,使得對(duì)數(shù)據(jù)的處理變得簡(jiǎn)單易行,在實(shí)際應(yīng)用中,我們經(jīng)常需要將處理后的數(shù)據(jù)保存為CSV,所以本文給大家介紹了python使用Pandas導(dǎo)出數(shù)據(jù)并保存為CSV文件2024-12-12
Python繪制loss曲線(xiàn)和準(zhǔn)確率曲線(xiàn)實(shí)例代碼
pytorch雖然使用起來(lái)很方便,但在一點(diǎn)上并沒(méi)有tensorflow方便,就是繪制模型訓(xùn)練時(shí)在訓(xùn)練集和驗(yàn)證集上的loss和accuracy曲線(xiàn)(共四條),下面這篇文章主要給大家介紹了關(guān)于Python繪制loss曲線(xiàn)和準(zhǔn)確率曲線(xiàn)的相關(guān)資料,需要的朋友可以參考下2022-08-08
python pandas利用fillna方法實(shí)現(xiàn)部分自動(dòng)填充功能
這篇文章主要介紹了python pandas通過(guò)fillna方法實(shí)現(xiàn)部分自動(dòng)填充功能,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-03-03
Windows下PyCharm配置Anaconda環(huán)境(超詳細(xì)教程)
這篇文章主要介紹了Windows下PyCharm配置Anaconda環(huán)境,本文給大家分享一篇超詳細(xì)教程,通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-07-07
python機(jī)器學(xué)習(xí)Sklearn實(shí)戰(zhàn)adaboost算法示例詳解
這篇文章主要為大家介紹了python機(jī)器學(xué)習(xí)Sklearn實(shí)戰(zhàn)adaboost算法的示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪2021-11-11
Python基礎(chǔ)之循環(huán)語(yǔ)句相關(guān)知識(shí)總結(jié)
今天給大家?guī)?lái)的是關(guān)于Python基礎(chǔ)的相關(guān)知識(shí),文章圍繞著Python循環(huán)語(yǔ)句展開(kāi),文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下2021-06-06

