Python:豆瓣电影商业数据分析-爬取全数据【附带爬虫豆瓣,数据处理过程,数据分析,可视化,以及完整PPT报告】

 

 

**爬取豆瓣电影信息,分析近年电影行业的发展情况**

本文是完整的数据分析展现,代码有完整版,包含豆瓣电影爬取的具体方式【附带爬虫豆瓣,数据处理过程,数据分析,可视化,以及完整PPT报告】

 

最近MBA在学习《商业数据分析》,大实训作业给了数据要进行数据分析,所以先拿豆瓣电影练练手,网络上爬取豆瓣电影TOP250较多,但对于豆瓣电影全数据的爬取教程很少,所以我自己做一版。

目录

 

**爬取豆瓣电影信息,分析近年电影行业的发展情况**

一、爬取豆瓣电影

1.1认识XPath

1.2豆瓣电影信息

(1)主页数据探索

(2)详细页探索

1.3代码区

1.4 完整代码

1.5遇到的问题

1.使用User_Agent,仿造浏览器访问 headers

2.伪造Cookie,解封豆瓣IP

3.使用代理IP proxies

二、数据分析和可视化

2.1数据清洗

2.2数据分析,终于到了

2.3  建立回归模型

2.4 完整代码


一、爬取豆瓣电影

1.1认识XPath

先简单介绍下XPath,爬虫的时候会用到,尤其是爬取页面的内容不同时,需要对此进行修改。

lxml是一款高性能的 Python HTML/XML 解析器,我们可以利用XPath,来快速的定位特定元素以及获取节点信息。

xpath的节点关系

每个XML的标签我们都称之为节点,其中最顶层的节点称为根节点。

 

xpath中节点的关系

选取节点
XPath 使用路径表达式来选取 XML 文档中的节点或者节点集。这些路径表达式和我们在常规的电脑文件系统中看到的表达式非常相似。

使用chrome插件选择标签时候,选中时,选中的标签会添加属性class=”xh-highlight”

下面列出了最有用的表达式:

实例
在下面的表格中,已列出了一些路径表达式以及表达式的结果:

xpath基础语法练习:
选择所有的h1下的文本

//h1/text()

获取所有的a标签的href

//a/@href

获取html下的head下的title的文本

/html/head/title/text()

获取html下的head下的link标签的href

/html/head/link/@href

 

查找特定的节点

1.2豆瓣电影信息

(1)主页数据探索

接下来开始正式爬取豆瓣电影的数据

https://movie.douban.com/tag/#/?sort=U&range=8,10&tags=%E7%94%B5%E5%BD%B1,%E4%B8%AD%E5%9B%BD%E5%A4%A7%E9%99%86&page_limit=20&page_start=0

对应关系如下:

1. sort

排序方式,有三种: U:近期热门排序,T:标记最多排序, R:最新上映排序, S:评价最高排序:

2.range=0,10  评分范围

3.tags    影视形式,类型,地区,特色

4.其它,可以不管

playbale=1:表示可播放
unwatched=1:表示还没看过的

 

通过对网址分析https://movie.douban.com/tag/#/?sort=U&range=8,10&tags=%E7%94%B5%E5%BD%B1,%E4%B8%AD%E5%9B%BD%E5%A4%A7%E9%99%86&page_limit=20&page_start=0

“加载更多”分析

1) 首先要能看网页发回来的JSON数据,步骤如下:

  • 打开chrome的“检查”工具
  • 切换到network界面
  • 选择XHR
  • 在页面上点击“加载更多”后会看到浏览器发出去的请求
  • Preview界面可以看到接受到的JSON数据

 

这里可以发现,每次点击“加载更多”,每次会增加显示20个电影,真实URL中的start这个参数从0-20-40…变化,发送回来最新加载出来的20个电影的JSON数据,了解了这些以后,下面就可以用代码实现抓取了。

  • page_limit=20 决定请求信息的数量
  • page_start=0 决定请求的位置

(2)详细页探索

可以看到,其实主页上已经包含了影片的名称和评分数据,详细的内容还要点击具体的影片,打开如下:

这些都是我们要获取的信息。

通过以上就可以确定超链接位置所在,具体的方法是点击上图红色方框内的“箭头”,之后选择你想获取的信息即可,然后下面就会显示出来。

具体的内容如下,语法见前面内容:

name=html.xpath('//span[@property="v:itemrevi

  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
好的,这是一个很有趣的问题,我可以为您提供一些 Python 爬取豆瓣电影短评数据并进行词云分析处理的方法,以下是具体步骤: 1. 安装必要的库 需要安装 requests, BeautifulSoup, wordcloud, jieba 等库,可以使用 pip 安装。 2. 获取豆瓣电影的短评数据 使用 requests 库获取电影的页面源代码,然后使用 BeautifulSoup 库解析 HTML 页面,找到短评的标签和类名,获取短评的文本信息。 3. 对短评数据进行分词和处理 使用 jieba 库对短评进行分词,去除停用词和无用符号,并统计词频。 4. 生成词云图 使用 wordcloud 库生成词云图,将分词处理后的结果输入 wordcloud.WordCloud() 函数,设置好字体、背景颜色、词云形状等参数,调用 generate_from_frequencies() 函数生成词云图。 以上是简单的流程,具体的代码实现可以参考以下示例代码: ```python import requests from bs4 import BeautifulSoup import jieba import wordcloud # 请求头信息 headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'} # 短评数据的URL url = 'https://movie.douban.com/subject/1292052/comments?start=0&limit=20&sort=new_score&status=P' # 获取电影的页面源代码 html = requests.get(url, headers=headers).text # 使用BeautifulSoup解析HTML页面 soup = BeautifulSoup(html, 'html.parser') # 获取所有短评 comments = soup.find_all('span', 'short') # 将短评文本拼接成一个字符串 text = '' for comment in comments: text += comment.get_text() # 对文本进行分词 words = jieba.cut(text) # 去除停用词和无用符号 stopwords = ['的', '了', '是', '我', '你', '他', '她', '我们', '你们', '他们', '这', '那', '还', '就', '和', '也', '不', '在', '有', '到', '个', '了', '啊', '呢', '吧', '哦', '嗯', '哈', '呀', '嘛', '了', '吗'] filtered_words = [] for word in words: if word not in stopwords and word.strip() != '': filtered_words.append(word) # 统计词频 word_count = {} for word in filtered_words: if word not in word_count: word_count[word] = 1 else: word_count[word] += 1 # 生成词云图 wc = wordcloud.WordCloud( font_path='simhei.ttf', background_color='white', width=800, height=600, max_words=200, max_font_size=100, random_state=30, ) wc.generate_from_frequencies(word_count) # 展示词云图 import matplotlib.pyplot as plt plt.imshow(wc, interpolation='bilinear') plt.axis('off') plt.show() ``` 这样就可以爬取豆瓣电影的短评数据并进行词云分析处理了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值