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

python?爬取豆瓣電影短評并利用wordcloud生成詞云圖

 更新時(shí)間:2022年06月07日 17:09:20   作者:??csdn來挖墻腳????  
這篇文章主要介紹了python?爬取豆瓣電影短評并利用wordcloud生成詞云圖,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下

前言

最近學(xué)到數(shù)據(jù)可視化到了詞云圖,正好學(xué)到爬蟲,各種爬網(wǎng)站【實(shí)驗(yàn)名稱】 爬取豆瓣電影《千與千尋》的評論并生成詞云

  • 利用爬蟲獲得電影評論的文本數(shù)據(jù)
  • 處理文本數(shù)據(jù)生成詞云圖

第一步、準(zhǔn)備數(shù)據(jù)  

需要登錄豆瓣網(wǎng)站才能夠獲得短評文本數(shù)據(jù)movie.douban.com/subject/129…

首先獲取cookies,使用爬蟲強(qiáng)大的firefox瀏覽器

將cookies數(shù)據(jù)復(fù)制到cookies.txt文件當(dāng)中備用,

第二步、編寫爬蟲代碼

#coding = utf-8
import requests
import time
import random
from bs4 import BeautifulSoup

abss = 'https://movie.douban.com/subject/1291561/comments'
firstPag_url = 'https://movie.douban.com/subject/1291561/comments?start=20&limit=20&sort=new_score&status=P&percent_type='
url = 'https://movie.douban.com/subject/1291561/comments?start=0&limit=20&sort=new_score&status=P'
header = {
'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:57.0) Gecko/20100101 Firefox/57.0',
'Connection':'keep-alive'
}

def get_data(html):
    # 獲取所需要的頁面數(shù)據(jù)
    soup = BeautifulSoup(html, 'lxml')
    comment_list = soup.select('.comment > p')
    next_page = soup.select('#paginator > a')[2].get('href')
    date_nodes = soup.select('..comment-time')
    return comment_list, next_page, date_nodes

def get_cookies(path):
    # 獲取cookies
    f_cookies = open(path, 'r')
    cookies ={}
    for line in f_cookies.read().split(';'): # 將Cookies字符串其轉(zhuǎn)換為字典
        name ,value = line.strip().split('=', 1)
        cookies[name] = value
    return cookies
 
if __name__ == '__main__':
    cookies = get_cookies('cookies.txt') # cookies文件保存的前面所述的cookies
    html = requests.get(firstPag_url, cookies=cookies,headers=header).content
    comment_list, next_page, date_nodes = get_data(html) #首先從第一個(gè)頁面處理
    soup = BeautifulSoup(html, 'lxml')
    while (next_page): #不斷的處理接下來的頁面
        print(abss + next_page)
        html = requests.get(abss + next_page, cookies=cookies, headers=header).content
        comment_list, next_page, date_nodes = get_data(html)
        soup = BeautifulSoup(html, 'lxml')
        comment_list, next_page,date_nodes = get_data(html)
        with open("comments.txt", 'a', encoding='utf-8')as f:
            for ind in range(len(comment_list)):
                comment = comment_list[ind];
                date = date_nodes[ind]
                comment = comment.get_text().strip().replace("\n", "")
                date= date.get_text().strip()
                f.writelines(date+u'\n' +comment + u'\n')
        time.sleep(1 + float(random.randint(1, 100)) / 20)

每一頁都會有20條的短評,所以我們依次遍歷每一頁a

第二步,處理爬到的數(shù)據(jù),在第一步當(dāng)中已經(jīng)將數(shù)據(jù)存檔到了commit.txt文件當(dāng)中,

# -*- coding:utf-8 -*-
import jieba
import matplotlib.pyplot as plt
from wordcloud import WordCloud,ImageColorGenerator
from scipy.misc import imread

f_comment = open("comments.txt",'rb')
words = []
for line in f_comment.readlines():
    if(len(line))==12:
        continue
    A = jieba.cut(line)
    words.append(" ".join(A))
# 去除停用詞
stopwords = [',','。','【','】', '”','“',',','《','》','!','、','?','.','…','1','2','3','4','5','[',']','(',')',' ']
new_words = []
for sent in words :
    word_in = sent.split(' ')
    new_word_in = []
    for word in word_in:
        if word in stopwords:
            continue
        else:
            new_word_in.append(word)
    new_sent = " ".join(new_word_in)
    new_words.append(new_sent)
final_words = []
for sent in new_words:
    sent = sent.split(' ')
    final_words +=sent
final_words_flt = []
for word in final_words:
    if word == ' ':
        continue
    else:
        final_words_flt.append(word)
text = " ".join(final_words_flt)

處理完數(shù)據(jù)之后得到帶有空格的高頻詞:

第三步、生成詞云圖

首先安裝python的wordcloud庫:

pip install wordcloud

 在第二步text后面加上下面代碼生成詞云圖

font = r'C:\Windows\Fonts\FZSTK.TTF'
bk = imread("bg.png") # 設(shè)置背景文件
wc = WordCloud(collocations=False, mask = bk, font_path=font, width=1400, height=1400, margin=2).generate(text.lower())
image_colors = ImageColorGenerator(bk) # 讀取背景文件色彩
plt.imshow(wc.recolor(color_func=image_colors))
plt.axis("off")
plt.figure()
plt.imshow(bk, cmap=plt.cm.gray)
plt.axis("off")
plt.show()
wc.to_file('word_cloud1.png') 

wordcloud作為對象是為小寫,生成一個(gè)詞云文件大概需要三步:

  • 配置詞云對象參數(shù)
  • 加載詞文本
  • 輸出詞云文件(如果不加說明默認(rèn)圖片大小是400*200
方法描述
Wordcloud.generate(text)向wordcloud對象中加載文本text,例如:wordcloud.genertae(“python && wordclooud”)
Wordcloud.to_file(filename)將詞云輸出為圖像元件以.png .jpg格式保存,例wordcloud.to_file(“picture.png”)

具體的方法上面

wordcloud做詞頻統(tǒng)計(jì)時(shí)分為下面幾步:

  • 分割:以空格分割單詞
  • 統(tǒng)計(jì):單詞出現(xiàn)的次數(shù)并過濾
  • 字體:根據(jù)統(tǒng)計(jì)搭配相應(yīng)的字號

布局:

最后我么可以看到短評當(dāng)中處理過后的高頻詞

我們隨便照一張圖片讀取背景顏色

最后生成的詞云圖就出來了:

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

相關(guān)文章

  • Python爬蟲之爬取淘女郎照片示例詳解

    Python爬蟲之爬取淘女郎照片示例詳解

    這篇文章主要介紹了Python爬蟲之爬取淘女郎照片示例詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • 跟老齊學(xué)Python之私有函數(shù)和專有方法

    跟老齊學(xué)Python之私有函數(shù)和專有方法

    這篇文章是老齊學(xué)Python系列文章的一篇,主要介紹了跟私有函數(shù)和專有方法,需要的朋友可以參考下
    2014-10-10
  • python使用列表的最佳方案

    python使用列表的最佳方案

    這篇文章主要介紹了python使用列表的最佳方式,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下
    2020-08-08
  • Python運(yùn)算符重載用法實(shí)例分析

    Python運(yùn)算符重載用法實(shí)例分析

    這篇文章主要介紹了Python運(yùn)算符重載用法,實(shí)例分析了幾種常見的Python運(yùn)算符重載的使用技巧,需要的朋友可以參考下
    2015-06-06
  • 淘寶秒殺python腳本 掃碼登錄版

    淘寶秒殺python腳本 掃碼登錄版

    這篇文章主要為大家詳細(xì)介紹了淘寶秒殺python腳本,掃碼登錄版,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-09-09
  • Python爬蟲實(shí)現(xiàn)抓取京東店鋪信息及下載圖片功能示例

    Python爬蟲實(shí)現(xiàn)抓取京東店鋪信息及下載圖片功能示例

    這篇文章主要介紹了Python爬蟲實(shí)現(xiàn)抓取京東店鋪信息及下載圖片功能,涉及Python頁面請求、響應(yīng)、解析等相關(guān)操作技巧,需要的朋友可以參考下
    2018-08-08
  • Permission denied的解決方法

    Permission denied的解決方法

    這篇文章主要介紹了Permission denied的解決方法,希望能給你帶來幫助
    2021-08-08
  • 使用python實(shí)現(xiàn)個(gè)性化詞云的方法

    使用python實(shí)現(xiàn)個(gè)性化詞云的方法

    最近看到可視化的詞云,看到網(wǎng)上也很多這樣的工具,但是都不怎么完美,有些不支持中文,有的中文詞頻統(tǒng)計(jì)得莫名其妙、有的不支持自定義形狀、所有的都不能自定義顏色,于是網(wǎng)上找了一下,決定用python繪制詞云
    2017-06-06
  • Python使用pandas和xlsxwriter讀寫xlsx文件的方法示例

    Python使用pandas和xlsxwriter讀寫xlsx文件的方法示例

    今天小編就為大家分享一篇關(guān)于Python使用pandas和xlsxwriter讀寫xlsx文件的方法示例,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2019-04-04
  • 實(shí)例詳解Python裝飾器與閉包

    實(shí)例詳解Python裝飾器與閉包

    閉包是Python裝飾器的基礎(chǔ)。要理解閉包,先要了解Python中的變量作用域規(guī)則。本文主要給大家介紹Python裝飾器與閉包的相關(guān)知識,需要的朋友可以參考下
    2019-07-07

最新評論

巢湖市| 含山县| 云龙县| 柳河县| 湟源县| 西和县| 石屏县| 湖北省| 聂拉木县| 监利县| 密云县| 浏阳市| 阿克陶县| 田阳县| 临夏市| 治多县| 秦皇岛市| 屏南县| 洪江市| 古田县| 东山县| 金堂县| 分宜县| 龙门县| 荔波县| 忻城县| 福鼎市| 宁武县| 中江县| 临汾市| 从江县| 湖北省| 通州区| 枣庄市| 盐山县| 华蓥市| 临江市| 确山县| 华池县| 桐乡市| 荔浦县|