日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

爬取某瓣电影中你好,李焕英电影的短评并生成词云

發(fā)布時(shí)間:2024/2/28 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 爬取某瓣电影中你好,李焕英电影的短评并生成词云 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

要爬取的目標(biāo)鏈接:

項(xiàng)目結(jié)構(gòu):

其中img.png是背景圖片,lhz.py是Python代碼,lhz.text是爬取到的短評,msyh.ttc是字體文件,new_inclound.png是生成的詞云圖片。
字體文件和背景圖片下載鏈接
提取碼:8888
下面是完整的代碼:

import requests # 請求庫,需要安裝 from fake_useragent import UserAgent # 構(gòu)造user—Agent的庫,需要安裝 from lxml import etree # 使用xpath()需要導(dǎo)入該庫,需要安裝 import time # 使用time.sleep()使程序睡眠一段時(shí)間需要導(dǎo)入該庫 import jieba # 中文分詞庫,需要安裝 import imageio # 讀取圖片需要該庫,需要安裝 import wordcloud # 制作詞云的庫,需要安裝 from typing import NoReturn # 類型標(biāo)記的庫,需要安裝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()') # 使用xpath提取短評,結(jié)果是列表with open('lhz.text', mode='a', encoding='utf-8') as f:# 將列表中的每一個(gè)短評處理后寫入文件中for i in comm:i.replace('\n', '')i += '\n'f.write(i)if self.b:# 使用xpath提取第一個(gè)頁面中下一個(gè)頁面的鏈接next_url = e.xpath('//div[@id="paginator"]/a/@href')self.b = Falseelse:# 使用xpath提取非第一個(gè)頁面中的下一個(gè)頁面的鏈接next_url = e.xpath('//div[@id="paginator"]/a[3]/@href')if next_url: # 如果提取到的下一個(gè)頁面的鏈接不為空就遞歸提取time.sleep(0.5) # 程序睡眠0.5秒# 構(gòu)造下一個(gè)頁面的鏈接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) # 遞歸調(diào)用time.sleep(1)def make_clound(self) -> NoReturn:"""繪制詞云圖"""with open('lhz.text', mode='r', encoding='utf-8') as f: # 讀取短評文件中的數(shù)據(jù)txt = f.read()txt_list = jieba.cut(txt) # 分詞string = ' '.join(txt_list) # 分詞后再使用空格它們重新連接成字符串img = imageio.imread('img.png') # 讀取圖片wc = wordcloud.WordCloud( # 配置詞云參數(shù)width=1500, # 詞云圖片的寬,單位是像素height=1000, # 詞云圖片的高background_color='black', # 背景顏色font_path='msyh.ttc', # 字體文件的路徑mask=img, # 除白色部分之外的用來繪制詞云scale=10, # 按照比例進(jìn)行放大畫布,如設(shè)置為1.5,則長和寬都是原來畫布的1.5倍stopwords={',', '.', ',', '。', '!', '?', '?'}, # 設(shè)置停用詞)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安裝,同時(shí)也需要注意你的字體文件路徑和背景圖片路徑可能和我的不一樣,要改為自己的。
同時(shí),由于豆瓣有反爬措施,爬取到200多條時(shí)就需要登錄,所以短評只有200多條,但這足夠了!

下面是我的運(yùn)行結(jié)果:

總結(jié)

以上是生活随笔為你收集整理的爬取某瓣电影中你好,李焕英电影的短评并生成词云的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。