亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Python爬取你好李煥英豆瓣短評生成詞云的示例代碼

 更新時間:2021年02月24日 15:51:31   作者:一個超會寫B(tài)ug的安太狼  
這篇文章主要介紹了Python爬取你好李煥英豆瓣短評生成詞云,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下

爬取過程:

你好,李煥英 短評的URL:

https://movie.douban.com/subject/34841067/comments?start=20&limit=20&status=P&sort=new_score

在這里插入圖片描述

分析要爬取的URL;
34841067:電影ID
start=20:開始頁面
limit=20:每頁評論條數(shù)

代碼:

url = 'https://movie.douban.com/subject/%s/comments?start=%s&limit=20&sort=new_score&status=P % (movie_id, (i - 1) * 20)

在谷歌瀏覽器中按F12進(jìn)入開發(fā)者調(diào)試模式,查看源代碼,找到短評的代碼位置,查看位于哪個div,哪個標(biāo)簽下:

在這里插入圖片描述

可以看到評論在div[id=‘comments']下的div[class=‘comment-item']中的第一個span[class=‘short']中,使用正則表達(dá)式提取短評內(nèi)容,即代碼為:

url = 'https://movie.douban.com/subject/%s/comments?start=%s&limit=20&sort=new_score&status=P' \
     % (movie_id, (i - 1) * 20)

   req = requests.get(url, headers=headers)
   req.encoding = 'utf-8'
   comments = re.findall('<span class="short">(.*)</span>', req.text)

背景圖:

在這里插入圖片描述

生成的詞云:

在這里插入圖片描述

完整代碼:

import re
from PIL import Image
import requests
import jieba
import matplotlib.pyplot as plt
import numpy as np

from os import path

from wordcloud import WordCloud, STOPWORDS

headers = {
  'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:64.0) Gecko/20100101 Firefox/64.0'
}

d = path.dirname(__file__)

def spider_comment(movie_id, page):
 """
 爬取評論
 :param movie_id: 電影ID
 :param page: 爬取前N頁
 :return: 評論內(nèi)容
 """
 comment_list = []
 for i in range(page):
  url = 'https://movie.douban.com/subject/%s/comments?start=%s&limit=20&sort=new_score&status=P&percent_type=' \
    % (movie_id, (i - 1) * 20)

  req = requests.get(url, headers=headers)
  req.encoding = 'utf-8'
  comment_list = re.findall('<span class="short">(.*)</span>', req.text)


  print("當(dāng)前頁數(shù):%s,總評論數(shù):%s" % (i, len(comment_list)))

 return comment_list

def wordcloud(comment_list):

 wordlist = jieba.lcut(' '.join(comment_list))
 text = ' '.join(wordlist)

 print(text)

 # 調(diào)用包PIL中的open方法,讀取圖片文件,通過numpy中的array方法生成數(shù)組
 backgroud_Image = np.array(Image.open(path.join(d, "wordcloud.png")))

 wordcloud = WordCloud(
  font_path="simsun.ttc",
  background_color="white",

  mask=backgroud_Image, # 設(shè)置背景圖片
  stopwords=STOPWORDS,
  width=2852,
  height=2031,
  margin=2,
  max_words=6000, # 設(shè)置最大顯示的字?jǐn)?shù)
  #stopwords={'企業(yè)'}, # 設(shè)置停用詞,停用詞則不再詞云圖中表示
  max_font_size=250, # 設(shè)置字體最大值
  random_state=1, # 設(shè)置有多少種隨機(jī)生成狀態(tài),即有多少種配色方案
  scale=1) # 設(shè)置生成的詞云圖的大小

 # 傳入需畫詞云圖的文本
 wordcloud.generate(text)

 wordcloud.to_image()
 wordcloud.to_file("cloud.png")

 plt.imshow(wordcloud)
 plt.axis("off")
 plt.show()

# 主函數(shù)
if __name__ == '__main__':
 movie_id = '34841067'
 page = 11
 comment_list = spider_comment(movie_id, page)
 wordcloud(comment_list)

WordCloud各含義參數(shù)如下:

font_path : string #字體路徑,需要展現(xiàn)什么字體就把該字體路徑+后綴名寫上,如:font_path = '黑體.ttf'

width : int (default=400) #輸出的畫布寬度,默認(rèn)為400像素

height : int (default=200) #輸出的畫布高度,默認(rèn)為200像素

prefer_horizontal : float (default=0.90) #詞語水平方向排版出現(xiàn)的頻率,默認(rèn) 0.9 (所以詞語垂直方向排版出現(xiàn)頻率為 0.1 )

mask : nd-array or None (default=None) #如果參數(shù)為空,則使用二維遮罩繪制詞云。如果 mask 非空,設(shè)置的寬高值將被忽略,遮罩形狀被 mask 取代。除全白(#FFFFFF)的部分將不會繪制,其余部分會用于繪制詞云。如:bg_pic = imread('讀取一張圖片.png'),背景圖片的畫布一定要設(shè)置為白色(#FFFFFF),然后顯示的形狀為不是白色的其他顏色??梢杂胮s工具將自己要顯示的形狀復(fù)制到一個純白色的畫布上再保存,就ok了。

scale : float (default=1) #按照比例進(jìn)行放大畫布,如設(shè)置為1.5,則長和寬都是原來畫布的1.5倍

min_font_size : int (default=4) #顯示的最小的字體大小

font_step : int (default=1) #字體步長,如果步長大于1,會加快運算但是可能導(dǎo)致結(jié)果出現(xiàn)較大的誤差

max_words : number (default=200) #要顯示的詞的最大個數(shù)

stopwords : set of strings or None #設(shè)置需要屏蔽的詞,如果為空,則使用內(nèi)置的STOPWORDS

background_color : color value (default=”black”) #背景顏色,如background_color='white',背景顏色為白色

max_font_size : int or None (default=None) #顯示的最大的字體大小

mode : string (default=”RGB”) #當(dāng)參數(shù)為“RGBA”并且background_color不為空時,背景為透明

relative_scaling : float (default=.5) #詞頻和字體大小的關(guān)聯(lián)性

color_func : callable, default=None #生成新顏色的函數(shù),如果為空,則使用 self.color_func

regexp : string or None (optional) #使用正則表達(dá)式分隔輸入的文本

collocations : bool, default=True #是否包括兩個詞的搭配

colormap : string or matplotlib colormap, default=”viridis” #給每個單詞隨機(jī)分配顏色,若指定color_func,則忽略該方法

random_state : int or None #為每個單詞返回一個PIL顏色


fit_words(frequencies) #根據(jù)詞頻生成詞云
generate(text) #根據(jù)文本生成詞云
generate_from_frequencies(frequencies[, ...]) #根據(jù)詞頻生成詞云
generate_from_text(text) #根據(jù)文本生成詞云
process_text(text) #將長文本分詞并去除屏蔽詞(此處指英語,中文分詞還是需要自己用別的庫先行實現(xiàn),使用上面的 fit_words(frequencies) )
recolor([random_state, color_func, colormap]) #對現(xiàn)有輸出重新著色。重新上色會比重新生成整個詞云快很多
to_array() #轉(zhuǎn)化為 numpy array
to_file(filename) #輸出到文件

到此這篇關(guān)于Python爬取你好李煥英豆瓣短評生成詞云的文章就介紹到這了,更多相關(guān)Python爬取豆瓣短評內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • import的本質(zhì)解析

    import的本質(zhì)解析

    import是我們經(jīng)常使用的功能,方法大家也都會。雖然用的多,但它的本質(zhì)我們似乎沒有好好的了解過。本文就import的本質(zhì)解析,向大家作了介紹,需要的朋友可以參考下。
    2017-10-10
  • python使用bs4爬取boss直聘靜態(tài)頁面

    python使用bs4爬取boss直聘靜態(tài)頁面

    這篇文章主要介紹了python如何使用bs4爬取boss直聘靜態(tài)頁面,幫助大家更好的理解和學(xué)習(xí)爬蟲,感興趣的朋友可以了解下
    2020-10-10
  • Python創(chuàng)建或生成列表的操作方法

    Python創(chuàng)建或生成列表的操作方法

    在本文中我們給大家分享了關(guān)于Python創(chuàng)建或生成列表的操作方法以及步驟圖文流程,需要的朋友們學(xué)習(xí)下。
    2019-06-06
  • Python如何設(shè)置utf-8為默認(rèn)編碼的問題

    Python如何設(shè)置utf-8為默認(rèn)編碼的問題

    這篇文章主要介紹了Python如何設(shè)置utf-8為默認(rèn)編碼的問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • MindSpore導(dǎo)入CUDA算子的解決方案

    MindSpore導(dǎo)入CUDA算子的解決方案

    本文介紹了在MindSpore標(biāo)準(zhǔn)格式下進(jìn)行CUDA算子開發(fā)的方法和流程,可以讓開發(fā)者在現(xiàn)有的AI框架下仍然可以調(diào)用基于CUDA實現(xiàn)的高性能的算子,感興趣的朋友跟隨小編一起看看吧
    2024-05-05
  • Python內(nèi)置模塊Collections的使用教程詳解

    Python內(nèi)置模塊Collections的使用教程詳解

    collections 是 Python 的一個內(nèi)置模塊,所謂內(nèi)置模塊的意思是指 Python 內(nèi)部封裝好的模塊,無需安裝即可直接使用。本文將詳解介紹Collections的使用方式,需要的可以參考一下
    2022-03-03
  • Python中防止sql注入的方法詳解

    Python中防止sql注入的方法詳解

    SQL注入是比較常見的網(wǎng)絡(luò)攻擊方式之一,它不是利用操作系統(tǒng)的BUG來實現(xiàn)攻擊,而是針對程序員編程時的疏忽,通過SQL語句,實現(xiàn)無帳號登錄,甚至篡改數(shù)據(jù)庫。下面這篇文章主要給大家介紹了關(guān)于Python中防止sql注入的方法,需要的朋友可以參考下。
    2017-02-02
  • Python實現(xiàn)視頻轉(zhuǎn)換為字符畫詳解

    Python實現(xiàn)視頻轉(zhuǎn)換為字符畫詳解

    這篇文章主要介紹了如何通過Python實現(xiàn)讀取視頻并將其轉(zhuǎn)換為字符畫的示例代碼,文中講解詳細(xì),對我們的學(xué)習(xí)和工作有一點的價值,感興趣的小伙伴可以了解一下
    2021-12-12
  • python 中字典嵌套列表的方法

    python 中字典嵌套列表的方法

    今天小編就為大家分享一篇python 中字典嵌套列表的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • Blender Python編程創(chuàng)建發(fā)光材質(zhì)示例詳解

    Blender Python編程創(chuàng)建發(fā)光材質(zhì)示例詳解

    這篇文章主要為大家介紹了Blender Python編程創(chuàng)建發(fā)光材質(zhì)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08

最新評論