Python采集電影評論實戰(zhàn)示例
數(shù)據(jù)采集
我們上一篇介紹了,如何采集王者皮膚,買不起皮膚,當個桌面壁紙挺好的。我們今天來學(xué)習(xí)如何采集電影評論,看看這個電影好不好看。
發(fā)送請求
我們首先確定我們的目標網(wǎng)址,對我們需要獲取的數(shù)據(jù)。
我們要把每一個評論獲取下來,我們接下來用到開發(fā)者工具。我們看評論是在什么位置。是不是在網(wǎng)頁源代碼中。接下來,我們發(fā)送請求,獲取網(wǎng)頁源代碼。
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)
這段代碼中,我們首先定義了一個 URL,然后使用 requests.get()
函數(shù)獲取該 URL 的數(shù)據(jù),并將其存儲在 res
變量中。最后,我們打印出 res
變量的值,即獲取到的數(shù)據(jù)。
在這個例子中,我們使用了 params
參數(shù)來指定獲取數(shù)據(jù)的起始位置和每頁顯示的記錄數(shù)。在這個例子中,我們指定了起始位置為第 num
條記錄,每頁顯示 limit
條記錄。
請注意,這個例子中使用的 user-agent
頭部是為了模擬瀏覽器的行為。在實際應(yīng)用中,我們應(yīng)該使用 User-Agent
頭部來指定我們的請求類型,例如 requests.get()
函數(shù)默認使用 'requests/2.18.4'
作為 User-Agent。
解析數(shù)據(jù)
我們還可以獲取其他信息,比如講,地區(qū),時間之類的。
我們先解析數(shù)據(jù)。
selector = parsel.Selector(res.text) info_lists = selector.css('div.comment-item')
這段代碼中,我們首先使用 parsel
庫中的 Selector
類來解析 res.text
中的內(nèi)容,并將其轉(zhuǎn)換為 CSS 選擇器。然后,我們使用 css
方法來獲取 CSS 選擇器中的所有 div
元素,并將其存儲在 info_lists
變量中。
需要注意的是,parsel
庫中的 Selector
類是一個比較底層的 CSS 解析器,它并不會對 CSS 選擇器進行任何優(yōu)化或轉(zhuǎn)換。因此,在使用 Selector
類時,我們需要確保輸入的 CSS 選擇器是有效的,并且不會包含任何無效的 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
中的每一個元素,并使用 css
方法獲取該元素的 text
屬性值。然后,我們使用 get()
方法獲取該屬性值的 title
屬性值,并將其存儲在 name
變量中。接著,我們使用 get()
方法獲取該屬性值的 title
屬性值,并將其存儲在 rating
變量中。最后,我們使用 get()
方法獲取該屬性值的 title
屬性值,并將其存儲在 times
變量中。最后,我們使用 get()
方法獲取該屬性值的 title
屬性值,并將其存儲在 area
變量中。最后,我們使用 get()
方法獲取該屬性值的 title
屬性值,并將其存儲在 vote_count
變量中。最后,我們使用 get()
方法獲取該屬性值的 title
屬性值,并將其存儲在 short
變量中。
輸出內(nèi)容
print(name, rating, times, area, vote_count, short)
這段代碼中,我們使用 print()
函數(shù)打印出了名稱、評分、時間、地點、投票數(shù)和簡短描述。
總結(jié)
在這個例子中,我們使用了parsel
庫中的 Selector
類和 css
方法來獲取網(wǎng)頁中的 CSS 選擇器,并將其轉(zhuǎn)換為相應(yīng)的屬性值。我們還可以使用其他方法來解析數(shù)據(jù),例如使用 params
參數(shù)來指定獲取數(shù)據(jù)的起始位置和每頁顯示的記錄數(shù),使用 headers
參數(shù)來指定 User-Agent 頭部。我們還可以使用其他開發(fā)者工具來獲取更多數(shù)據(jù),例如使用網(wǎng)頁源代碼來獲取網(wǎng)頁中的所有評論。
以上就是Python采集電影評論的詳細內(nèi)容,更多關(guān)于Python采集電影評論的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Python操作MySQL數(shù)據(jù)庫的示例代碼
這篇文章主要介紹了Python操作MySQL數(shù)據(jù)庫的方法,文中示例代碼非常詳細,幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下2020-07-07python 循環(huán)while和for in簡單實例
下面小編就為大家?guī)硪黄猵ython 循環(huán)while和for in簡單實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-08-08FP-growth算法發(fā)現(xiàn)頻繁項集——構(gòu)建FP樹
常見的挖掘頻繁項集算法有兩類,一類是Apriori算法,另一類是FP-growth。Apriori通過不斷的構(gòu)造候選集、篩選候選集挖掘出頻繁項集,需要多次掃描原始數(shù)據(jù),當原始數(shù)據(jù)較大時,磁盤I/O次數(shù)太多,效率比較低下2021-06-06Streamlit+Echarts實現(xiàn)繪制精美圖表
在數(shù)據(jù)分析和可視化的領(lǐng)域,選擇合適的工具可以讓我們事半功倍,本文主要為大家介紹兩個工具,Streamlit和ECharts,感興趣的小伙伴可以跟隨小編一起了解下2023-09-09Python實時監(jiān)控網(wǎng)站瀏覽記錄實現(xiàn)過程詳解
這篇文章主要介紹了Python實時監(jiān)控網(wǎng)站瀏覽記錄實現(xiàn)過程詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-07-07