1. 程式人生 > >豆瓣電視劇評論的爬取以及進行情感分析+生成詞雲

豆瓣電視劇評論的爬取以及進行情感分析+生成詞雲

很多時候我們要了解一部電視劇或電影的好壞時都會去豆瓣上檢視評分和評論,本文基於豆瓣上對某一部電視劇評論的爬取,然後進行SnowNLP情感分析,最後生成詞雲,給人一個直觀的印象

1. 爬取評論

以前段時間比較火熱的《獵場》為例,因豆瓣網有反爬蟲機制,所以在爬取時要帶登入後的cookie檔案,儲存在cookie.txt檔案裡,具體程式碼及結果如下:

import requests, codecs
from lxml import html
import time
import random

header = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:54.0) Gecko/20100101 Firefox/54.0'}
f_cookies = open('cookie.txt', 'r')
cookies = {}
for line in f_cookies.read().split(';'):
    name, value = line.strip().split('=', 1)
    cookies[name] = value
#print(cookies)

for num in range(0, 500, 20):
    url = 'https://movie.douban.com/subject/26322642/comments?start=' + str(
        num) + '&limit=20&sort=new_score&status=P&percent_type='
    with codecs.open('comment.txt', 'a', encoding='utf-8') as f:
        try:
            r = requests.get(url, headers=header, cookies=cookies)
            result = html.fromstring(r.text)
            comment = result.xpath( " // div[@class ='comment'] / p / text() ")
            for i in comment:
                f.write(i.strip() + '\r\n')
        except Exception as e:
            print(e)
    time.sleep(1 + float(random.randint(1, 100)) / 20)
5990755-a02354fb3db41688.png評論爬取結果
2. 情感分析

SnowNLP是python中用來處理文字內容的,可以用來分詞、標註、文字情感分析等,情感分析是簡單的將文字分為兩類,積極和消極,返回值為情緒的概率,越接近1為積極,接近0為消極。程式碼如下:

import numpy as np
from snownlp import SnowNLP
import matplotlib.pyplot as plt

f = open('comment.txt', 'r', encoding='UTF-8')
list = f.readlines()
sentimentslist = []
for i in list:
    s = SnowNLP(i)
    # print s.sentiments
    sentimentslist.append(s.sentiments)
plt.hist(sentimentslist, bins=np.arange(0, 1, 0.01), facecolor='g')
plt.xlabel('Sentiments Probability')
plt.ylabel('Quantity')
plt.title('Analysis of Sentiments')
plt.show()
5990755-d74631d47b16f17b.png情感分析結果
3. 生成詞雲

詞雲的生成主要用到了結巴分詞和wordcloud,前者是針對中文進行分詞的處理庫,後者可以根據分詞處理結果定製化生成詞雲,詳細程式碼如下:

#coding=utf-8
import matplotlib.pyplot as plt
from scipy.misc import imread
from wordcloud import WordCloud
import jieba, codecs
from collections import Counter

text = codecs.open('comment.txt', 'r', encoding='utf-8').read()
text_jieba = list(jieba.cut(text))
c = Counter(text_jieba)  # 計數
word = c.most_common(800)  # 取前500

bg_pic = imread('src.jpg')
wc = WordCloud(
    font_path='C:\Windows\Fonts\SIMYOU.TTF',  # 指定中文字型
    background_color='white',  # 設定背景顏色
    max_words=2000,  # 設定最大顯示的字數
    mask=bg_pic,  # 設定背景圖片
    max_font_size=200,  # 設定字型最大值
    random_state=20  # 設定多少種隨機狀態,即多少種配色
)
wc.generate_from_frequencies(dict(word))  # 生成詞雲


wc.to_file('result.jpg')

# show
plt.imshow(wc)
plt.axis("off")
plt.figure()
plt.imshow(bg_pic, cmap=plt.cm.gray)
plt.axis("off")
plt.show()
5990755-6eeb1e55067096a7.png原始圖和詞雲圖

相關推薦

豆瓣電視劇評論以及進行情感分析+生成

很多時候我們要了解一部電視劇或電影的好壞時都會去豆瓣上檢視評分和評論,本文基於豆瓣上對某一部電視劇評論的爬取,然後進行SnowNLP情感分析,最後生成詞雲,給人一個直觀的印象 1. 爬取評論 以前段時間比較火熱的《獵場》為例,因豆瓣網有反爬蟲機制,所以在爬取時要帶登入後

scrapy框架下的豆瓣電影評論以及登入,以及生成雲和柱狀圖

由於豆瓣在今年5月份已經禁止展示所有短評,只展示最熱的500條資料,並且在爬取到240條的時候,如果沒有登入的話,會提示登入。 因此幾天的爬蟲,包括豆瓣的自動登入和資料爬取後批量存入pymysql資料庫。 在這個爬蟲完成後,其實我也在頁面上找了下,在全部評論

nodejs 前端面經並生成

前言 最近有 CVTE 的面試但是一直沒有到我,昨天下午牛客網上 CVTE 前端的面經突然多了起來,大致看了一下,和自己之前整理的知識點差的不多,但是基本都問了 nodejs 的問題。正好之前的爬蟲都沒有做過詞雲,藉著這個機會爬一下牛客網的前端面經,順便

網易音樂爬蟲--評論以及Top Music統計

        網易云云音樂評論十分有趣,於是就想寫個爬蟲爬取評論。但是不熟悉Python,就用java寫了個。         主要使用了HttpClient,,Jsoup, 佇列, 執行緒, log4j,poi生成Excel儲存結果, 書寫過程中主要一個問題就是評論獲取

用selenium進行網易音樂進行評論

用selenium進行網易雲音樂進行評論爬取,然後做成詞雲圖 這個是抓取刀郎-黃玫瑰的評論詞雲 以下是抓取的程式碼,初學者,可能不是很完美,能執行。。呵呵。 #!/usr/bin/python # -*- coding: <encoding name> -*- i

豆瓣電影top250提取電影分類進行資料分析

下的一部分 ”’ content = selector.xpath(‘//div[@class=”info”]/div[@class=”bd”]/p/text()’) print(content) for i in content[1::2]: print(str(i).strip().replace(‘nr

豆瓣電影top250並保存在MongoDB裏

表名 title sta class tinc IV 邏輯運算符 取出 mov 首先回顧一下MongoDB的基本操作: 數據庫,集合,文檔 db,show dbs,use 數據庫名,drop 數據庫 db.集合名.insert({}) db.集合名.update({條

豆瓣網post 帶驗證碼

# -*- coding: utf-8 -*- import scrapy import requests from ..bao.jiema import get_number fromdata = { "source": "movie", "redir": "https://movie.douban

豆瓣電影簡易

art import tag [1] data htm rtt imp () #coding=utf-8 import urllib2 from HTMLParser import HTMLParser class HttpParser(HTMLParser):

Scrapy實現對新浪微博某關鍵詞的以及不同url中重複內容的過濾

工作原因需要爬取微博上相關微博內容以及評論。直接scrapy上手,發現有部分重複的內容出現。(標題重複,內容重複,但是url不重複) 1.scrapy爬取微博內容  為了降低爬取難度,直接爬取微博的移動端:(電腦訪問到移動版本微博,之後F12調出控制檯來操作) 點選

基於LDA對電商商品評論進行情感分析

1、專案背景: 現在大眾在進行網購之前都會先看下相關商品的評論,包括好評與差評,再綜合衡量,最後才決定是否會購買相關的物品。甚至有的消費者已經不看商品的詳情秒數頁而是直接看評論,然後決定是否下單。商品評論已經是使用者決策最為核心的考量因素了。 在本專案中要根據

Python爬蟲時翻頁等操作URL不會改變的解決辦法----以攜程評論為例

一、需求:       需要爬取攜程的五四廣場景點主頁的使用者點評資訊。 二、爬蟲時可能遇到的問題: 評論資訊雖然可以在該頁的原始碼中獲取到: 但是存在許多問題,例如: 1、評論翻頁、修改評論排序方式(智慧排序、有用數排序、按時間排序)並不會改變當前頁的UR

科學蹭熱點:用python獲取熱門微博評論進行情感分析

在我埋頭學習mysql、scrapy、django準備下一波吹水的時候,有人說,你去爬下老薛的微博呀,還能蹭個熱點,這讓勤(mo)奮(mo)學(kou)習(jiao)的我停下了寄幾敲程式碼的手。 然後我趕緊去關注了一下最近老薛的新聞…在感受了劇情的複雜和案情的撲朔迷離之後…我默默地學習瞭如

追蹤微博上的素人事件傳播規律——微博評論

追蹤事件:眉有辦法的小吳 方法:爬取該事件的話題,以及話題下的評論,分析參與的微博賬號的數量與時間的關係 資料獲取: 話題下的綜合,實時,熱門三個系列 每個話題下的評論,轉發,點贊 轉發後的評論,轉發,點贊 步驟:先爬完話題資料,把話題下的帖子url儲存到資料庫

Python3網路爬蟲:requests+mongodb+wordcloud 豆瓣影評並生成

Python版本: python3.+ 執行環境: Mac OS IDE: pycharm 一 前言 二 豆瓣網影評爬取 網頁分析 程式碼編寫 三 資料庫實裝 四

b站評論

lse max round temp reply ajax ons ksum {} var userData = {}; var startPage = 0; var endPage = 0; var startTime = ""; var endTime = ""; va

利用500萬條微博語料對微博評論進行情感分析

最近身邊的人都在談論一件事:10月8日中午的一條微博,引發了一場微博的軒然大波。導致微博癱瘓的原因是全球超人氣偶像明星鹿晗發了一條“大家好,給大家介紹一下,這是我女朋友@關曉彤”。這條微博並@關曉彤。資料分析,可以在這裡自取!截止目前,鹿晗的這條微博已經被轉發1

如何科學地蹭熱點:用python爬蟲獲取熱門微博評論進行情感分析

前言:本文主要涉及知識點包括新浪微博爬蟲、python對資料庫的簡單讀寫、簡單的列表資料去重、簡單的自然語言處理(snowNLP模組、機器學習)。適合有一定程式設計基礎,並對python有所瞭解的盆友閱讀。 甩鍋の宣告 1.本資料節選自新浪熱門

Python微博評論進行情感分析

最近身邊的人都在談論一件事:10月8日中午的一條微博,引發了一場微博的軒然大波。導致微博癱瘓的原因是全球超人氣偶像明星鹿晗發了一條“大家好,給大家介紹一下,這是我女朋友@關曉彤 ‘’。這條微博並@關曉彤。資料分析,可以在這裡自取! l 關曉彤的這條微博轉發67652,回覆873532,點贊:22604

Scrapy-redis增量以及Simhash相似文件的去重

最近在實習,第一個任務就是從各大入口網站抓取新聞,爬蟲本身不是一個很難的事情,用scrapy框架很容易完成(關於scrapy的具體用法可以參考我之前的一篇部落格http://blog.csdn.net/john_xyz/article/details/78157