Python爬取《冰雪奇緣2》豆瓣影評


前言

文的文字及圖片來源於網絡,僅供學習、交流使用,不具有任何商業用途,版權歸原作者所有,如有問題請及時聯系我們以作處理。

作者: 劉銓@CCIS Lab

PS:如有需要Python學習資料的小伙伴可以加點擊下方鏈接自行獲取

http://note.youdao.com/noteshare?id=3054cce4add8a909e784ad934f956cef

一、分析URL

1、分析豆瓣影評URL

首先在豆瓣中,找到我們想要爬取的電影《冰雪奇緣2》

在這里插入圖片描述

2、查看影片評論

在這里插入圖片描述

二、爬取評論

分析網頁源碼

在這里插入圖片描述

分析源碼,可以看到評論在<span class="short">這個標簽中,即代碼為:

 1 import urllib.request
 2 from bs4 import BeautifulSoup
 3  4 def getHtml(url):
 5     """獲取url頁面"""
 6     headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36'}
 7     req = urllib.request.Request(url,headers=headers)
 8     req = urllib.request.urlopen(req)
 9     content = req.read().decode('utf-8')
10     return content
11 12 def getComment(url):
13     """解析HTML頁面"""
14     html = getHtml(url)
15     soupComment = BeautifulSoup(html, 'html.parser')
16     comments = soupComment.findAll('span', 'short')
17     onePageComments = []
18     for comment in comments:
19         onePageComments.append(comment.getText()+'\n')
20     return onePageComments
21 22 if __name__ == '__main__':
23     f = open('冰雪奇緣2.txt', 'w', encoding='utf-8')
24     for page in range(10):  # 豆瓣爬取多頁評論需要驗證。
25         url = 'https://movie.douban.com/subject/25887288/comments?start=' + str(20*page) + '&limit=20&sort=new_score&status=P'
26         print('第%s頁的評論:' % (page+1))
27         print(url + '\n')
28         for i in getComment(url):
29             f.write(i)
30             print(i)
31         print('\n')

 

這里要注意的是,未登錄用戶只能查看前十頁的評論,爬取更多評論需要先模擬登錄。

三、進行詞雲展示

數據抓取下來之后,我們就來使用詞雲分析一下這部電影:

1、使用結巴分詞

因為我們下載的影評是一段一段的文字,而我們做的詞雲是統計單詞出現的次數,所以需要先分詞。

1 import matplotlib.pyplot as plt
2 from wordcloud import WordCloud
3 from scipy.misc import imread
4 import jieba
5 6 text = open("冰雪奇緣2.txt","rb").read()
7 #結巴分詞
8 wordlist = jieba.cut(text,cut_all=False)
9 wl = " ".join(wordlist)

 

2、使用詞雲分析

 1 #設置詞雲
 2 wc = WordCloud(background_color = "white", #設置背景顏色
 3                mask = imread('black_mask.png'),  #設置背景圖片
 4                max_words = 2000, #設置最大顯示的字數
 5                stopwords = ["", "這種", "這樣", "還是","就是", "這個", "沒有" , "一個" , "什么", "電影", "一部","第一部", "第二部"], #設置停用詞
 6                font_path = "C:\Windows\Fonts\simkai.ttf",  # 設置為楷體 常規
 7         #設置中文字體,使得詞雲可以顯示(詞雲默認字體是“DroidSansMono.ttf字體庫”,不支持中文)
 8                max_font_size = 60,  #設置字體最大值
 9                random_state = 30, #設置有多少種隨機生成狀態,即有多少種配色方案
10     )
11 myword = wc.generate(wl)#生成詞雲
12 wc.to_file('result.png')
13 14 #展示詞雲圖
15 plt.imshow(myword)
16 plt.axis("off")
17 plt.show()

 

在這里插入圖片描述 最終結果: 在這里插入圖片描述 .


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM