python电影评论的情感分析流浪地球_《流浪地球》影评分析(⼀):使⽤Python爬取⾖。。。
本⽂爬⾍的步骤:
使⽤Selenium库的webdriver进⾏⽹页元素定位和信息获取;
使⽤BeautifulSoup库进⾏数据的提取;
使⽤Pandas库进⾏数据的存储。
后台回复python爬⾍可获取PPT和影评数据。
《流浪地球》⼤年初⼀在内陆上映,也快⼀个⽉了。上映以来,票房⼀路⾼升。前⼏⽇,《流浪地球》已经超过40亿了,跃居中国电影票房总榜第⼆了。对于这部电影,好评也有,争议也有,微博上热点也是不断。本来之前就想⾃⼰⽤Python爬⾍爬取⼀下⾖瓣影评,再做做数据分析。不过这⼏天都没有来得及弄。这电影都要下了,我才来蹭这个热点,这个热度估计是蹭不上了。
这个周末主要写了⼀部分爬⾍代码爬取了⾖瓣影评,先在上记录下来。下周如果有时间的话,会接着使⽤爬取到的影评数据,进⾏简单的数据处理和数据分析。
这部分Python爬⾍主要使⽤了两个库,Selenium库和BeautifulSoup库。
在进⾏爬⾍之前,需要先了解到⼏个概念,后台回复python爬⾍,可获取到我⼀年多前学习爬⾍时做的⼀份PPT分享(其实PPT⽐较简单,更具体的教程可⾃⾏百度)。⽬前爬⾍程序还在继续,现在保存了60000条⾖瓣影评数据,后台⼀并分享。
PPT截图
爬取的数据存储格式如下:
想更深⼊学习爬⾍的,推荐⼀本⼊门教程:《Python⽹络数据采集》,内容详尽,⽽且简单易懂。
以下为爬⾍的简单说明和代码。
其实⼀般的爬⾍流程很简单:
4种常用进制转换器1、发送http请求,获取⽹络源码
⼀般这⼀部分调⽤quest库就好。由于本⽂爬取⾖瓣影评数据要登录个⼈⾖瓣账号,所以我改⽤Selenium库的webdriver来调⽤浏览器访问⾖瓣⽹进⾏数据的抓取。注:在此之前,需要⾃⾏下载驱动webdriver。本⽂使⽤的浏览器是chrome,不同版本对应的webdriver可在以下⽹址下载:
或者
2、⽹页解析
对于⽹页解析,需要了解HTML这个概念,同时需要知道:标签(Tag)、属性(Attribute)。使⽤Python进⾏页⾯解析和数据提取,⼀般可使⽤re库正则表达式处理。或者使⽤BeautifulSoup库,该库提供了很便利的函数,可以直接根据标签、属性名、属性值等定位到⽹页元素,提取相应的内容。
那么如何到我们需要抓取的⽹页内容在HTML中对应的标签路径呢?可借助开发者⼯具,打开浏览器,按快捷键F12。在弹出的窗⼝右上⾓,点击箭头图标,如下图红框:
之后我们就可以在浏览器左侧⽤⿏标选择或点击⽹页内容,在右侧的开发者⼯具栏就能定位到相应的HTML内容了。
3、数据处理保存。
数据的处理和保存很简单,本⽂直接使⽤Pandas库保存为xlsx格式。
# -*- coding: utf-8 -*-
"""
Created on Sat Feb 16 13:04:52 2019
@author: A
爬取《流浪地球》的⾖瓣影评
"""
from bs4 import BeautifulSoup
import pandas as pd
from selenium import webdriver
import time
import requests
import urllib.parse
import re
>>###未登录状态下的⾖瓣影评抓取,未登录状态下可浏览20个页⾯
##步骤⼀:分析url规律,分析数据所在的⽹页源码,使⽤浏览器,打开开发者⼯具(Chrome浏览器快捷键为F12)
#⾖瓣电影⽹页《流浪地球》的短评url:
#规律:只要修改参数start,⼀个url存放20条短评。start以20递增
#⽬前⾖瓣限制爬⾍,登录状态下,每分钟允许发起40个请求,每个请求20条短评。
#合理限制时间的化,⼀个⼩时可采集48000条短评。
#start = 0
#end_page = 20 #爬取50000个页⾯
#limit = 20  #每页20个短评
##步骤⼆:获取⽹页源码
#def get_html(start,limit,end_page):
#    headers = {
#      'User-
Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.
clothes store是什么意思#      }
#    for i in range(end_page):
#        params = {
#            'start': str(start+limit*i),
#            'limit': str(limit),
#            'sort': 'new_score',
#            'status': 'P'}
启用javascript啥意思#        base_url = 'movie.douban/subject/26266893/comments?'
#        url = base_url + urllib.parse.urlencode(params)
#        try:
#            response = (url,headers = headers,timeout = 10)
#            data =
#            pattern = repile(r'
(.*?)
',re.S)
#            if re.findall(pattern,data)!=[]:
#                with open(r'E:\Python\data\','a',encoding='utf-8') as file:
matlab安装教程2009
#                    file.write(data)python入门教程非常详细ppt
#                print('采集第 %d 页评论成功!'%(i+1))
#            else:
#                print('采集第 %d 页评论失败!超过访问页⾯限制!'%(i+1))
#        except:
#            print('采集第 %d 页评论失败!'%(i+1))
#        time.sleep(1.5)
#    return None
#if __name__=='__mian__':
#    get_html(start,limit,end_page)
##
>>>>>#以下为登录状态⾖瓣影评的抓取
end_page = 50000
##使⽤selenium模拟浏览器登陆
#需要下载安装chromedriver
driver = webdriver.Chrome("C:\\Users\\A\\Downloads\\chromedriver_win32_1\\")
<("accounts.douban/passport/login")
time.sleep(3)
username_login = driver.find_elements_by_css_selector('li.account-tab-account')[0]#到密码登录
username_login.click()
time.sleep(3)
driver.find_element_by_id("username").send_keys("你的账号")
driver.find_element_by_id("password").send_keys("你的密码")
driver.find_element_by_link_text("登录⾖瓣").click()
time.sleep(3)
driver.find_element_by_link_text("电影").click()#运⾏⾄此,chrome开启⼀个新的⼦窗⼝,跳转到⾖瓣电影
##chrome webdriver⽀持多窗⼝切换
#driver.current_window_handle#获得当前窗⼝句柄
#driver.window_handles#返回所以窗⼝的句柄到当前会话
driver.switch_to_window(driver.window_handles[1])#切换窗⼝函数
driver.find_element_by_id("inp-query").send_keys("流浪地球")#在搜索输⼊流浪地球
kubernetes githubdriver.find_element_by_class_name("inp-btn").click()
time.sleep(3)
driver.find_element_by_class_name("title-text").click()#进⼊流浪地球页⾯
time.sleep(3)
driver.find_element_by_id("comments-section").find_element_by_partial_link_text("全部").click()#进⼊全部评价页⾯time.sleep(5)

发表评论