生活随笔
收集整理的這篇文章主要介紹了
爬取某瓣电影中你好,李焕英电影的短评并生成词云
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
要爬取的目標鏈接:
項目結構:
其中img.png是背景圖片,lhz.py是Python代碼,lhz.text是爬取到的短評,msyh.ttc是字體文件,new_inclound.png是生成的詞云圖片。
字體文件和背景圖片下載鏈接
提取碼:8888
下面是完整的代碼:
import requests
from fake_useragent
import UserAgent
from lxml
import etree
import time
import jieba
import imageio
import wordcloud
from typing
import NoReturn
class lhz():def __init__(self
):"""初始化"""self
.next_page_url
= "https://movie.douban.com/subject" \
"/34841067/comments?start=0&limit=20&status=P&sort=new_score"self
.b
= Truedef get_all_comment(self
, url
: str) -> NoReturn
:"""獲取頁面中的所有短評url:要提取短評的鏈接"""response
= requests
.get
(url
, headers
={'user-agent': UserAgent
().chrome
})e
= etree
.HTML
(response
.text
, etree
.HTMLParser
())comm
= e
.xpath
('//span[@class="short"]/text()') with open('lhz.text', mode
='a', encoding
='utf-8') as f
:for i
in comm
:i
.replace
('\n', '')i
+= '\n'f
.write
(i
)if self
.b
:next_url
= e
.xpath
('//div[@id="paginator"]/a/@href')self
.b
= Falseelse:next_url
= e
.xpath
('//div[@id="paginator"]/a[3]/@href')if next_url
: time
.sleep
(0.5) next_url
= ''.join
(next_url
).replace
('&percent_type=', '')self
.next_page_url
= "https://movie.douban.com/subject" \
"/34841067/comments{}".format(next_url
)self
.get_all_comment
(self
.next_page_url
) time
.sleep
(1)def make_clound(self
) -> NoReturn
:"""繪制詞云圖"""with open('lhz.text', mode
='r', encoding
='utf-8') as f
: txt
= f
.read
()txt_list
= jieba
.cut
(txt
) string
= ' '.join
(txt_list
) img
= imageio
.imread
('img.png') wc
= wordcloud
.WordCloud
( width
=1500, height
=1000, background_color
='black', font_path
='msyh.ttc', mask
=img
, scale
=10, stopwords
={',', '.', ',', '。', '!', '?', '?'}, )wc
.generate
(string
) wc
.to_file
('new_inclound.png') if __name__
== '__main__':"""程序入口"""lhz
= lhz
()lhz
.get_all_comment
(lhz
.next_page_url
)lhz
.make_clound
()
上面用到了許多第三方庫,大家需要使用pip安裝,同時也需要注意你的字體文件路徑和背景圖片路徑可能和我的不一樣,要改為自己的。
同時,由于豆瓣有反爬措施,爬取到200多條時就需要登錄,所以短評只有200多條,但這足夠了!
下面是我的運行結果:
總結
以上是生活随笔為你收集整理的爬取某瓣电影中你好,李焕英电影的短评并生成词云的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。