主頁 > 知識(shí)庫 > Python爬取哆啦A夢(mèng)-伴我同行2豆瓣影評(píng)并生成詞云圖

Python爬取哆啦A夢(mèng)-伴我同行2豆瓣影評(píng)并生成詞云圖

熱門標(biāo)簽:所得系統(tǒng)電梯怎樣主板設(shè)置外呼 小蘇云呼電話機(jī)器人 儋州電話機(jī)器人 北瀚ai電銷機(jī)器人官網(wǎng)手機(jī)版 市場(chǎng)上的電銷機(jī)器人 朝陽手機(jī)外呼系統(tǒng) 佛山400電話辦理 北京電銷外呼系統(tǒng)加盟 地圖標(biāo)注面積

一、前言

通過這篇文章,你將會(huì)收貨:

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

② 手把手教你學(xué)會(huì)詞云圖的繪制;

二、豆瓣爬蟲步驟

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

待爬取網(wǎng)址:

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

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

那些爬蟲小白看過來,這又是一個(gè)你們練手的好機(jī)會(huì)。

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

# 1. 導(dǎo)入相關(guān)庫,用什么庫,都寫在這里
import requests
import chardet
import re

# 2. 構(gòu)造請(qǐng)求頭,這是一個(gè)反扒措施,初期學(xué)會(huì)總結(jié),哪些網(wǎng)站都用了哪些,總結(jié)多了,用起來就得心應(yī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最好也粘上去,因?yàn)橛袝r(shí)候服務(wù)器會(huì)根據(jù)Referer來判斷請(qǐng)求時(shí)由瀏覽器還是爬蟲發(fā)出的
    'Referer':'https://www.douban.com/'
}

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

三、最終效果如下

四、詞云圖制作流程

很多同學(xué)不會(huì)制作詞云圖,借此機(jī)會(huì),我這里寫一套詳細(xì)的流程,大家照貓畫虎就行。

繪制詞云圖的詳細(xì)步驟如下:

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

① 導(dǎo)入相關(guān)庫

在這里,你需要什么庫,就導(dǎo)入什么庫。

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

import warnings
warnings.filterwarnings("ignore")

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

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

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

list(jieba.cut(sentence))

結(jié)果如下:

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

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

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

list(jieba.cut(sentence))

結(jié)果如下:

總結(jié):

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

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

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

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

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

短短的一行代碼,很簡(jiǎn)單。

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

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

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

# 讀取停用詞
with open(r"stoplist.txt",encoding="utf-8") as f:
    stop = f.read()
stop = stop.split()
# 額外添加停用詞,這里我們只添加了一個(gè)空格
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)計(jì)

這里注意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è)置詞云參數(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")

五、效果圖

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

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

您可能感興趣的文章:
  • Python多線程爬取豆瓣影評(píng)API接口
  • Python爬取英雄聯(lián)盟MSI直播間彈幕并生成詞云圖
  • Python通過文本和圖片生成詞云圖
  • 基于python生成英文版詞云圖代碼實(shí)例
  • Python實(shí)現(xiàn)Wordcloud生成詞云圖的示例
  • python根據(jù)文本生成詞云圖代碼實(shí)例
  • 利用Python爬取微博數(shù)據(jù)生成詞云圖片實(shí)例代碼
  • Python采集貓眼兩萬條數(shù)據(jù) 對(duì)《無名之輩》影評(píng)進(jìn)行分析
  • 使用Python抓取豆瓣影評(píng)數(shù)據(jù)的方法
  • Python爬蟲實(shí)戰(zhàn):分析《戰(zhàn)狼2》豆瓣影評(píng)

標(biāo)簽:龍巖 云南 江蘇 商丘 金融催收 寧夏 定西 酒泉

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Python爬取哆啦A夢(mèng)-伴我同行2豆瓣影評(píng)并生成詞云圖》,本文關(guān)鍵詞  Python,爬取,哆啦,夢(mèng),伴我,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Python爬取哆啦A夢(mèng)-伴我同行2豆瓣影評(píng)并生成詞云圖》相關(guān)的同類信息!
  • 本頁收集關(guān)于Python爬取哆啦A夢(mèng)-伴我同行2豆瓣影評(píng)并生成詞云圖的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章