欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python爬取哆啦A夢-伴我同行2豆瓣影評并生成詞云圖

 更新時間:2021年06月03日 08:38:48   作者:數(shù)據(jù)分析與統(tǒng)計學之美  
哆啦A夢系列是陪伴我,乃至陪伴了幾代人成長的故事.50年來,藤子·F·不二雄先生創(chuàng)造了竹蜻蜓,任意門,時光機器等等無數(shù)的新奇道具,讓大雄和他的小伙伴們經(jīng)歷了各種冒險,也經(jīng)歷了許多充滿戲劇性的啼笑皆非的日常.特意寫了這篇文章,教大家怎么繪制詞云圖,需要的朋友可以參考下

一、前言

通過這篇文章,你將會收貨:

① 豆瓣電影數(shù)據(jù)的爬??;

② 手把手教你學會詞云圖的繪制;

在這里插入圖片描述

二、豆瓣爬蟲步驟

當然,豆瓣上面有很多其他的數(shù)據(jù),值得我們爬取后做分析。但是本文我們僅僅爬取評論信息。

待爬取網(wǎng)址:

https://movie.douban.com/subject/34913671/comments?status=P

由于只有一個字段,我們直接使用re正則表達式,解決該問題。

在這里插入圖片描述

那些爬蟲小白看過來,這又是一個你們練手的好機會。

下面直接為大家講述爬蟲步驟:

# 1. 導入相關庫,用什么庫,都寫在這里
import requests
import chardet
import re

# 2. 構造請求頭,這是一個反扒措施,初期學會總結,哪些網(wǎng)站都用了哪些,總結多了,用起來就得心應手。
headers = {
    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36',
    #在爬蟲里面如果出現(xiàn)了Referer最好也粘上去,因為有時候服務器會根據(jù)Referer來判斷請求時由瀏覽器還是爬蟲發(fā)出的
    'Referer':'https://www.douban.com/'
}

# 3. 這個循環(huán),類似于翻頁操作
for i in range(0,1001,20):
    url = f"https://movie.douban.com/subject/34913671/comments?start={i}&limit=20&status=P&sort=new_score"
    # 4. 使用requests庫發(fā)起請求
    response = requests.get(url,headers=headers)#發(fā)起請求得到響應
    # 5. 有時候返回結果可能會亂碼,這里記得調用encoding屬性,修改編碼
    response.encoding = "utf-8"
    # 6. 獲取返回的結果,調用的是text屬性。一定要區(qū)分text和content屬性的區(qū)別
    text = response.text#返回一個經(jīng)過解碼的字符串
    # 7. 解析數(shù)據(jù),這里直接使用正則解析
    comments_list = [i for i in re.findall('<span class="short">(.*?)</span>',text,re.S)]
    # 8. 數(shù)據(jù)存儲,針對列表中的每一條數(shù)據(jù),我們直接使用open()函數(shù),寫入到txt文檔
    for comment in comments_list:
         with open(r"哆啦A夢:伴我同行2.txt","a",encoding = "utf-8") as f :  
                    f.write(comment + "\n")

三、最終效果如下

在這里插入圖片描述

四、詞云圖制作流程

很多同學不會制作詞云圖,借此機會,我這里寫一套詳細的流程,大家照貓畫虎就行。

繪制詞云圖的詳細步驟如下:

  • ① 導入相關庫;
  • ② 讀取文本文件,使用jieba庫動態(tài)修改詞典;
  • ③ 使用jieba庫中的lcut()方法進行分詞;
  • ④ 讀取停用詞,添加額外停用詞,并去除停用詞;
  • ⑤ 詞頻統(tǒng)計;
  • ⑥ 繪制詞云圖

① 導入相關庫

在這里,你需要什么庫,就導入什么庫。

import jieba
from wordcloud import WordCloud
import matplotlib.pyplot as plt
from imageio import imread

import warnings
warnings.filterwarnings("ignore")

② 讀取文本文件,使用jieba庫動態(tài)修改詞典

這里with open()讀取文本文件,我就不解釋了。這里解釋一下動態(tài)修改詞典。

sentence = "湖北廣水第三條街,有一條狗"

list(jieba.cut(sentence))

結果如下:

在這里插入圖片描述

針對上述切分結果,如果我們想把“湖北廣水”和“第三條街”都當成一個完整詞,而不切分開,怎么辦呢?此時,就需要借助add_word()方法,動態(tài)修改詞典。

sentence = "湖北廣水第三條街,有一條狗"

jieba.add_word("湖北廣水")
jieba.add_word("有一條狗")

list(jieba.cut(sentence))

結果如下:

在這里插入圖片描述

總結:

  • jieba.add_word()方法,只能一個個動態(tài)添加某個詞語。
  • 假如我們需要動態(tài)添加多個詞語的時候,就需要使用jieba.load_userdict()方法。也就是說:將所有的自定義詞語,放到一個文本中,然后使用該方法,一次性動態(tài)修改詞典集。

有了上述基礎,我們直接讀取文本后,動態(tài)修改詞典。

with open(r"哆啦A夢:伴我同行2.txt",encoding="utf-8") as f:
    txt = f.read()
txt = txt.split()

jieba.add_word("哆啦A夢")
jieba.add_word("大雄")

③ 使用jieba庫中的lcut()方法進行分詞

短短的一行代碼,很簡單。

data_cut = [jieba.lcut(x) for x in txt]

④ 讀取停用詞,添加額外停用詞,并去除停用詞

讀取停用詞,采用split()函數(shù)切分后,會得到一個停用詞列表。接著,采用+號將額外停用詞,添加到列表中即可。

# 讀取停用詞
with open(r"stoplist.txt",encoding="utf-8") as f:
    stop = f.read()
stop = stop.split()
# 額外添加停用詞,這里我們只添加了一個空格
stop = [" "] + stop
# 去除停用詞
s_data_cut = pd.Series(data_cut)
all_words_after = s_data_cut.apply(lambda x:[i for i in x if i not in stop])

⑤ 詞頻統(tǒng)計

這里注意series中value_counts()的使用。

all_words = []
for i in all_words_after:
    all_words.extend(i)
    
word_count = pd.Series(all_words).value_counts()

⑥ 繪制詞云圖

# 1、讀取背景圖片
back_picture = imread(r"aixin.jpg")

# 2、設置詞云參數(shù)
wc = WordCloud(font_path="simhei.ttf",
               background_color="white",
               max_words=2000,
               mask=back_picture,
               max_font_size=200,
               random_state=42
              )
wc2 = wc.fit_words(word_count)

# 3、繪制詞云圖
plt.figure(figsize=(16,8))
plt.imshow(wc2)
plt.axis("off")
plt.show()
wc.to_file("ciyun.png")

五、效果圖

在這里插入圖片描述

從詞云圖大致可以看出:這又是一部催淚電影,這是一部情懷電影,陪伴我們長大的大雄都結婚了?那我們呢?其實我們小時候,就盼望著大雄和靜香能夠是好盆友,就在這部電影,他們結婚了。這部電影應該怎么上演呢?大家可以去電影院一探究竟。

到此這篇關于Python爬取哆啦A夢-伴我同行2豆瓣影評并生成詞云圖的文章就介紹到這了,更多相關Python爬取影評并生成詞云圖內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Python的Flask開發(fā)框架簡單上手筆記

    Python的Flask開發(fā)框架簡單上手筆記

    這篇文章主要介紹了Python的Flask開發(fā)框架的入門知識整理,Flask是一款極輕的Python web開發(fā)框架,需要的朋友可以參考下
    2015-11-11
  • tensorflow求導和梯度計算實例

    tensorflow求導和梯度計算實例

    今天小編就為大家分享一篇tensorflow求導和梯度計算實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • scrapy-redis源碼分析之發(fā)送POST請求詳解

    scrapy-redis源碼分析之發(fā)送POST請求詳解

    這篇文章主要給大家介紹了關于scrapy-redis源碼分析之發(fā)送POST請求的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用scrapy-redis具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-05-05
  • Python django搭建layui提交表單,表格,圖標的實例

    Python django搭建layui提交表單,表格,圖標的實例

    今天小編就為大家分享一篇Python django搭建layui提交表單,表格,圖標的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • 三個Python自動化辦公好用到爆的模塊分享

    三個Python自動化辦公好用到爆的模塊分享

    本文小編來給大家推薦幾個在自動化辦公領域當中非常好用的Python模塊,可以幫助大家在工作當中及大地提高效率,避免重復機械化地操作流程
    2022-07-07
  • pandas實現(xiàn)對一列/多列進行數(shù)據(jù)區(qū)間篩選

    pandas實現(xiàn)對一列/多列進行數(shù)據(jù)區(qū)間篩選

    這篇文章主要介紹了pandas實現(xiàn)對一列/多列進行數(shù)據(jù)區(qū)間篩選方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • 新年快樂! python實現(xiàn)絢爛的煙花綻放效果

    新年快樂! python實現(xiàn)絢爛的煙花綻放效果

    這篇文章主要為大家詳細介紹了python利用可視化技巧實現(xiàn)煙花綻放效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • 基于pygame實現(xiàn)貪吃蛇小游戲示例

    基于pygame實現(xiàn)貪吃蛇小游戲示例

    大家好,本篇文章主要講的是基于pygame實現(xiàn)貪吃蛇小游戲示例,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • 通過PHP與Python代碼對比的語法差異詳解

    通過PHP與Python代碼對比的語法差異詳解

    這篇文章主要介紹了通過PHP與Python代碼對比淺析語法差異,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-07-07
  • Python中你應該知道的一些內(nèi)置函數(shù)

    Python中你應該知道的一些內(nèi)置函數(shù)

    python提供了內(nèi)聯(lián)模塊buidin,該模塊定義了一些軟件開發(fā)中常用的函數(shù),這些函數(shù)實現(xiàn)了數(shù)據(jù)類型的轉換,數(shù)據(jù)的計算,序列的處理等功能。下面這篇文章主要給大家介紹了Python中一些大家應該知道的內(nèi)置函數(shù),文中總結的非常詳細,需要的朋友們下面來一起看看吧。
    2017-03-03

最新評論