最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

爬取過程:

你好,李煥英 短評(píng)的URL:

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

在這里插入圖片描述

分析要爬取的URL;
34841067:電影ID
start=20:開始頁面
limit=20:每頁評(píng)論條數(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)試模式,查看源代碼,找到短評(píng)的代碼位置,查看位于哪個(gè)div,哪個(gè)標(biāo)簽下:

在這里插入圖片描述

可以看到評(píng)論在div[id=‘comments']下的div[class=‘comment-item']中的第一個(gè)span[class=‘short']中,使用正則表達(dá)式提取短評(píng)內(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):
 """
 爬取評(píng)論
 :param movie_id: 電影ID
 :param page: 爬取前N頁
 :return: 評(píng)論內(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,總評(píng)論數(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)的部分將不會(huì)繪制,其余部分會(huì)用于繪制詞云。如:bg_pic = imread('讀取一張圖片.png'),背景圖片的畫布一定要設(shè)置為白色(#FFFFFF),然后顯示的形狀為不是白色的其他顏色??梢杂胮s工具將自己要顯示的形狀復(fù)制到一個(gè)純白色的畫布上再保存,就ok了。

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

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

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

max_words : number (default=200) #要顯示的詞的最大個(gè)數(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不為空時(shí),背景為透明

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 #是否包括兩個(gè)詞的搭配

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

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


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

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

相關(guān)文章

  • Python3.6實(shí)現(xiàn)連接mysql或mariadb的方法分析

    Python3.6實(shí)現(xiàn)連接mysql或mariadb的方法分析

    這篇文章主要介紹了Python3.6實(shí)現(xiàn)連接mysql或mariadb的方法,結(jié)合實(shí)例形式分析了Python3.6針對(duì)mysql或mariadb數(shù)據(jù)庫操作的相關(guān)模塊安裝、數(shù)據(jù)庫與表的創(chuàng)建、數(shù)據(jù)庫連接等操作技巧與注意事項(xiàng),需要的朋友可以參考下
    2018-05-05
  • Python?輕松實(shí)現(xiàn)可視化大屏

    Python?輕松實(shí)現(xiàn)可視化大屏

    對(duì)于從事數(shù)據(jù)領(lǐng)域的小伙伴來說,當(dāng)需要闡述自己觀點(diǎn)、展示項(xiàng)目成果時(shí),我們需要在最短時(shí)間內(nèi)讓別人知道你的想法。我相信單調(diào)乏味的語言很難讓別人快速理解。最直接有效的方式就是將數(shù)據(jù)進(jìn)行可視化展現(xiàn)
    2022-01-01
  • Python pandas如何根據(jù)指定條件篩選數(shù)據(jù)

    Python pandas如何根據(jù)指定條件篩選數(shù)據(jù)

    這篇文章主要介紹了Python pandas如何根據(jù)指定條件篩選數(shù)據(jù)問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • python?Tkinter模塊使用方法詳解

    python?Tkinter模塊使用方法詳解

    Python的GUI庫非常多,之所以選擇 Tkinter,一是最為簡(jiǎn)單,二是自帶庫,不需下載安裝,隨時(shí)使用,跨平臺(tái)兼容性非常好,下面這篇文章主要給大家介紹了關(guān)于python?Tkinter模塊使用方法的相關(guān)資料,需要的朋友可以參考下
    2022-04-04
  • Python count()函數(shù)實(shí)例詳解

    Python count()函數(shù)實(shí)例詳解

    count() 是Python的內(nèi)置函數(shù),可以「統(tǒng)計(jì)」字符串里指定「字符」或指定字符串出現(xiàn)的「次數(shù)」,這篇文章主要介紹了Python count()函數(shù)詳解,需要的朋友可以參考下
    2023-07-07
  • Python爬取數(shù)據(jù)并實(shí)現(xiàn)可視化代碼解析

    Python爬取數(shù)據(jù)并實(shí)現(xiàn)可視化代碼解析

    這篇文章主要介紹了Python爬取數(shù)據(jù)并實(shí)現(xiàn)可視化代碼解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-08-08
  • 淺談Python腳本開頭及導(dǎo)包注釋自動(dòng)添加方法

    淺談Python腳本開頭及導(dǎo)包注釋自動(dòng)添加方法

    今天小編就為大家分享一篇淺談Python腳本開頭及導(dǎo)包注釋自動(dòng)添加方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10
  • DeepSeek安裝部署完整步驟記錄

    DeepSeek安裝部署完整步驟記錄

    DeepSeek是一個(gè)用于高效文檔檢索的工具包,這篇文章詳細(xì)介紹了從環(huán)境準(zhǔn)備到部署和測(cè)試的整個(gè)過程,需要的朋友可以參考下
    2025-02-02
  • pytorch中的numel函數(shù)用法說明

    pytorch中的numel函數(shù)用法說明

    這篇文章主要介紹了pytorch中的numel函數(shù)用法說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-05-05
  • pytest配置項(xiàng)目不同環(huán)境URL的實(shí)現(xiàn)

    pytest配置項(xiàng)目不同環(huán)境URL的實(shí)現(xiàn)

    pytest-base-url是pytest的第三方插件,主要用來幫助我們進(jìn)行切換測(cè)試環(huán)境地址,下面就來介紹一下配置不同環(huán)境URL的實(shí)現(xiàn),感興趣的可以了解一下
    2024-02-02

最新評(píng)論

汝城县| 陵川县| 云林县| 原平市| 涞水县| 高淳县| 手游| 通州市| 灵宝市| 娄底市| 安多县| 吴旗县| 台北县| 宾川县| 万全县| 拉萨市| 安远县| 静乐县| 方城县| 丰宁| 溆浦县| 黎城县| 宁河县| 南陵县| 山西省| 富裕县| 长葛市| 肃南| 将乐县| 堆龙德庆县| 上杭县| 黄陵县| 河西区| 张家川| 永丰县| 乐安县| 铜陵市| 克什克腾旗| 华阴市| 惠水县| 黔西|