Python采集電影評(píng)論實(shí)戰(zhàn)示例
數(shù)據(jù)采集
我們上一篇介紹了,如何采集王者皮膚,買不起皮膚,當(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)求類型,例如 requests.get()
函數(shù)默認(rèn)使用 'requests/2.18.4'
作為 User-Agent。
解析數(shù)據(jù)
我們還可以獲取其他信息,比如講,地區(qū),時(shí)間之類的。
我們先解析數(shù)據(jù)。
selector = parsel.Selector(res.text) info_lists = selector.css('div.comment-item')
這段代碼中,我們首先使用 parsel
庫(kù)中的 Selector
類來(lái)解析 res.text
中的內(nèi)容,并將其轉(zhuǎn)換為 CSS 選擇器。然后,我們使用 css
方法來(lái)獲取 CSS 選擇器中的所有 div
元素,并將其存儲(chǔ)在 info_lists
變量中。
需要注意的是,parsel
庫(kù)中的 Selector
類是一個(gè)比較底層的 CSS 解析器,它并不會(huì)對(duì) CSS 選擇器進(jìn)行任何優(yōu)化或轉(zhuǎn)換。因此,在使用 Selector
類時(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ù)打印出了名稱、評(píng)分、時(shí)間、地點(diǎn)、投票數(shù)和簡(jiǎn)短描述。
總結(jié)
在這個(gè)例子中,我們使用了parsel
庫(kù)中的 Selector
類和 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)文章
Python操作MySQL數(shù)據(jù)庫(kù)的示例代碼
這篇文章主要介紹了Python操作MySQL數(shù)據(jù)庫(kù)的方法,文中示例代碼非常詳細(xì),幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下2020-07-07python 循環(huán)while和for in簡(jiǎn)單實(shí)例
下面小編就為大家?guī)?lái)一篇python 循環(huán)while和for in簡(jiǎn)單實(shí)例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-08-08Python類和對(duì)象的定義與實(shí)際應(yīng)用案例分析
這篇文章主要介紹了Python類和對(duì)象的定義與實(shí)際應(yīng)用,結(jié)合三個(gè)具體案例形式分析了Python面向?qū)ο蟪绦蛟O(shè)計(jì)中類與對(duì)象的定義、應(yīng)用、設(shè)計(jì)模式等相關(guān)操作技巧,需要的朋友可以參考下2018-12-12FP-growth算法發(fā)現(xiàn)頻繁項(xiàng)集——構(gòu)建FP樹(shù)
常見(jiàn)的挖掘頻繁項(xiàng)集算法有兩類,一類是Apriori算法,另一類是FP-growth。Apriori通過(guò)不斷的構(gòu)造候選集、篩選候選集挖掘出頻繁項(xiàng)集,需要多次掃描原始數(shù)據(jù),當(dāng)原始數(shù)據(jù)較大時(shí),磁盤(pán)I/O次數(shù)太多,效率比較低下2021-06-06Streamlit+Echarts實(shí)現(xiàn)繪制精美圖表
在數(shù)據(jù)分析和可視化的領(lǐng)域,選擇合適的工具可以讓我們事半功倍,本文主要為大家介紹兩個(gè)工具,Streamlit和ECharts,感興趣的小伙伴可以跟隨小編一起了解下2023-09-09Python實(shí)時(shí)監(jiān)控網(wǎng)站瀏覽記錄實(shí)現(xiàn)過(guò)程詳解
這篇文章主要介紹了Python實(shí)時(shí)監(jiān)控網(wǎng)站瀏覽記錄實(shí)現(xiàn)過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-07-07Python計(jì)算機(jī)視覺(jué)里的IOU計(jì)算實(shí)例
今天小編就為大家分享一篇Python計(jì)算機(jī)視覺(jué)里的IOU計(jì)算實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-01-01python實(shí)現(xiàn)逢七拍腿小游戲的思路詳解
這篇文章主要介紹了python實(shí)現(xiàn)逢七拍腿小游戲的思路,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-05-05分析并輸出Python代碼依賴的庫(kù)的實(shí)現(xiàn)代碼
這篇文章主要介紹了分析并輸出Python代碼依賴的庫(kù)的實(shí)現(xiàn)代碼,需要的朋友可以參考下2015-08-08