python爬虫实例——中国电影票房

article/2025/11/10 20:34:35

刚好最近在做一个关于中国电影市场的分析,所以这篇实例就诞生啦!!!

一、观察网页

我所爬取的网站是:中国票房——年度票房。
网址甩出来:http://www.cbooo.cn/year?year=2019

我们需要的数据是从2015年到2019年,每部电影的名称详情页url类型总票房国家及地区上映日期

点进去的页面是介个样子滴~它总共有25条数据,就是2019年的TOP25!
在这里插入图片描述
左上角框出来的地方是可以选择年份的,我们可以通过它来观察不同年份间url的相似点。如下图:我们观察到他们的网址是有规律的,即:http://www.cbooo.cn/year?year= + 年份 这样我们就可以直接获取到所有的网址
在这里插入图片描述

二、分步实现

1.导包
导入我们所需要的包

import os
import requests
from lxml import etree
import pandas as pd

2.定义获取数据的函数
因为每年都要请求一遍,所以为了方便,我们将它写成一个函数,直接调用,方便我们自己。

headers = {'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) \AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36'}
cookies = {'SUB':'_2A25wmfkgDeRhGeBI4lcU9irOzD2IHXVQZYdorDV6PUJbkdAKLUvAkW1NRkZNESdNnLdqXAeecDulr43bOma1k9ut'}
def get_data(url):r = requests.get(url, headers=headers, cookies=cookies, timeout=30)r.raise_for_status() #查看是否正常,正常返回200,否则返回404等r.encoding='utf-8'return r.text

此函数会返回url的网页源代码的内容,以url='http://www.cbooo.cn/year?year=2019’为例,下图为get_data后的结果,得到data后,我们就可以解析它,获取到我们想要的部分
在这里插入图片描述

3.提前创建csv表

local_data='D:/Learn'
local_main2=local_data+'/'+'movie.csv'#设置路径
if not os.path.exists(local_main2):data = pd.DataFrame(columns=['电影名称','电影详情页','电影类型','电影票房','国家及地区','上映时间'])data.to_csv(local_main2,index = None,encoding="utf_8_sig")

经过创建,在D盘下的learn文件夹下就会建好一个名为movie的csv空表。如下图:
在这里插入图片描述
4.获取近五年url

urls=[]
for year in range(5):urls.append('http://www.cbooo.cn/year?year={}'.format(2019-year))

结果如下:

在这里插入图片描述
5.获取我们需要的信息
这里我使用的是xpath,使用beautifulsoup也可以达到同样的效果

for url in urls:data = get_data(url)selector = etree.HTML(data)url = selector.xpath('//td[@class="one"]/a/@href') #详情页urlname = selector.xpath('//td[@class="one"]/a/@title') #电影名称movie_type = selector.xpath('//*[@id="tbContent"]//tr//td[2]/text()') #电影类型box_office = selector.xpath('//*[@id="tbContent"]//tr//td[3]/text()') #电影票房country = selector.xpath('//*[@id="tbContent"]//tr//td[6]/text()') #国家及地区time = selector.xpath('//*[@id="tbContent"]//tr//td[7]/text()') #上映时间

6.将获取的信息存入刚创建的csv

for i in range(len(url)):data = pd.DataFrame({'电影名称':name[i],'电影详情页':url[i],'电影类型':movie_type[i],'电影票房':box_office[i],'国家及地区':country[i],'上映时间':time[i]},columns=['电影名称','电影详情页','电影类型','电影票房','国家及地区','上映时间'],index=[0])data.to_csv(local_main2,index = None,mode = 'a' ,header=  None,sep=',',encoding="utf_8_sig")

至此,我们的电影票房就获取完成啦!

三、汇总代码

完整代码如下:

# -*- coding: utf-8 -*-
"""
Created on Sat Dec  7 09:57:06 2019@author: chensiyi
"""import os
import requests
from lxml import etree
import pandas as pdheaders = {'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) \AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36'}
cookies = {'SUB':'_2A25wmfkgDeRhGeBI4lcU9irOzD2IHXVQZYdorDV6PUJbkdAKLUvAkW1NRkZNESdNnLdqXAeecDulr43bOma1k9ut'}
def get_data(url):r = requests.get(url, headers=headers, cookies=cookies, timeout=30)r.raise_for_status() #查看是否正常,正常返回200,否则返回404等r.encoding='utf-8'return r.textlocal_data='D:/Learn'
local_main2=local_data+'/'+'movie.csv'#设置路径
if not os.path.exists(local_main2):data = pd.DataFrame(columns=['电影名称','电影详情页','电影类型','电影票房','国家及地区','上映时间'])data.to_csv(local_main2,index = None,encoding="utf_8_sig")urls=[]
for year in range(5):urls.append('http://www.cbooo.cn/year?year={}'.format(2019-year))for url in urls:data = get_data(url)selector = etree.HTML(data)url = selector.xpath('//td[@class="one"]/a/@href') #详情页urlname = selector.xpath('//td[@class="one"]/a/@title') #电影名称movie_type = selector.xpath('//*[@id="tbContent"]//tr//td[2]/text()') #电影类型box_office = selector.xpath('//*[@id="tbContent"]//tr//td[3]/text()') #电影票房country = selector.xpath('//*[@id="tbContent"]//tr//td[6]/text()') #国家及地区time = selector.xpath('//*[@id="tbContent"]//tr//td[7]/text()') #上映时间for i in range(len(url)):data = pd.DataFrame({'电影名称':name[i],'电影详情页':url[i],'电影类型':movie_type[i],'电影票房':box_office[i],'国家及地区':country[i],'上映时间':time[i]},columns=['电影名称','电影详情页','电影类型','电影票房','国家及地区','上映时间'],index=[0])data.to_csv(local_main2,index = None,mode = 'a' ,header=  None,sep=',',encoding="utf_8_sig")

爬取的数据如下(部分):
在这里插入图片描述


http://chatgpt.dhexx.cn/article/IhpVw3iJ.shtml

相关文章

python爬虫实战——猫眼电影案例

python爬虫实战——猫眼电影案例 背景 笔者上一篇文章《基于猫眼票房数据的可视化分析》中爬取了猫眼实时票房数据,用于展示近三年电影票房概况。由于数据中缺少导演/演员/编剧阵容等信息,所以爬取猫眼电影数据进行补充。关于爬虫的教学内容&#xff0c…

猫眼app产品分析和原型绘制

本项目为学习产品知识和技能过程中的一个小结,针对猫眼电影app的简单产品分析,顺便巩固xmind和axure技能。 项目名称 :猫眼电影app 产品背景:中国电影市场近10年(2009年-2019年)由高速增长阶段过渡到低速增…

Python爬虫实战+数据分析+数据可视化(猫眼电影)

一、爬虫部分 爬虫说明: 1、本爬虫是以面向对象的方式进行代码架构的 2、本爬虫爬取的数据存入到MongoDB数据库中 3、爬虫代码中有详细注释 代码展示 import re import timefrom pymongo import MongoClient import requests from lxml import html from urllib …

python爬虫基础案例——爬取猫眼电影并保存数据到excel

好久没更新博文了,最近忙于学习scrapy框架和微信小程序开发,今天看到一个自己之前写的但是中途放弃的爬虫小案例——爬取猫眼电影TOP100榜的相关数据,现在将它写好并分享给大家。 爬虫的套路就是通过url发送请求,获取数据&#x…

采集电影票房实时数据

网址:aHR0cDovL3BmLmZlLnN0Lm1hb3lhbi5jb20vZGFzaGJvYXJk 抓包分析 根据数据包可以发现,该网站在发送了ajax请求的同时又请求了一份woff文件,基本上可以确定这里使用了字体文件加密的方式了。 分析请求参数 不难看出,只有timestam…

【Python爬虫】猫眼电影榜单Top100

这是一个入门级的Python爬虫,结构易于理解。本文对编写此爬虫的全过程进行了讲述。希望对大家的Python爬虫学习有所帮助。 一、目标 爬取猫眼电影榜单Top100,将数据存入Excel文件中,并利用pyecharts库进行数据可视化得到.html文件和.png文件…

python爬虫阶段性总结和项目实操——爬取猫眼票房Top100

本博客通过爬取猫眼票房Top100来简要复习一下网页的HTML获取(requests库)解析(Beautiful Soup库)和数据保存(csv库)以及总结一下爬取过程中遇到的问题和解决方法 运行结果如下 1.获取网页源代码 def get_…

猫眼产品分析

一、前言 本文试图通过对猫眼电影的版本迭代历程分析、用户分析、功能分析、运营分析以及数据表现来回答以下几个问题: (1)猫眼电影的产品定位? (2)猫眼电影产品设计及运营中有哪些亮点和策略&#xff1f…

详解用爬虫批量抓取猫眼电影票房数据

"大数据"是一个体量特别大,数据类别特别大的数据集,并且这样的数据集无法用传统数据库工具对其内容进行抓取、管理和处理。 "大数据"首先是指数据体量(volumes)大,指代大型数据集,一般在10TB规模左右&#xf…

基于Python的电影票房爬取与可视化系统的设计与实现

博主介绍:✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专…

猫眼 — 破解数字反爬获取实时票房

From:https://zhuanlan.zhihu.com/p/33112359 js分析 猫_眼_电_影 字体文件 font-face:https://www.cnblogs.com/my8100/p/js_maoyandianying.html 解析某电影和某招聘网站的web-font自定义字体:https://www.jianshu.com/p/5400bbc8b634 Font…

猫眼电影票房爬取到MySQL中_爬取猫眼电影top100,request、beautifulsoup运用

这是第三篇爬虫实战,运用request请求,beautifulsoup解析,mysql储存。 如果你正在学习爬虫,本文是比较好的选择,建议在学习的时候打开猫眼电影top100进行标签的选择,具体分析步骤就省略啦,具体的…

python 抢票代码 猫眼演出_Python爬虫-猫眼电影排行

爬虫的目标 爬取猫眼电影TOP100的电影名称,时间,评分,图片等信息 抓取分析 查看网页源代码,找到对应的目标信息,发现一部电影对应的源代码是一个dd节点 抓取首页 为了方便,这里先抓取第一页的内容,运行之后,可以查看到网页的源代码,之后需要对页面进行解析。 import re…

flask+猫眼电影票房预测和电影推荐

flask猫眼电影票房预测和电影推荐,此系统有详细的录屏,下面只是部分截图,需要看完整录屏联系博主 系统开发语言python,框架为flask,数据库mysql,分为爬虫和可视化分析

猫眼电影产品分析

一、前言 本文试图通过对猫眼电影的版本迭代历程分析、用户分析、功能分析、运营分析以及数据表现来回答以下几个问题: (1)猫眼电影的产品定位? (2)猫眼电影产品设计及运营中有哪些亮点和策略? …

超过53亿!《长津湖》为什么这么火爆?我用 Python 来分析猫眼影评

对于这个十一黄金周的电影市场,绝对是《长津湖》的天下,目前票房就已经突破53亿,大有奋起直追《战狼2》的尽头。而且口碑也是相当的高,猫眼评分高达9.5,绝对的票房口碑双丰收啊 下面我们就通过爬取猫眼的电影评论&am…

python使用pyecharts对猫眼电影票房精美可视化分析简单仪表盘??(五个图好多个组件!!)

本次带来的是象形柱状图,玫瑰饼图,柱状图,折线图,漏斗图,并在一个网页上显示。排版也不好,其实我就是翻译下文档给大家讲解一下! 我又来了!上次做了个猫眼电影的不过瘾,又…

python爬猫眼电影影评,Python系列爬虫之爬取并简单分析猫眼电影影评

前言 今天给大家介绍利用Python爬取并简单分析猫眼电影影评。让我们愉快地开始吧~ 开发工具 Python版本:3.6.4 相关模块: requests模块; pyecharts模块; jieba模块; scipy模块; wordcloud模块; …

爬取猫眼电影,进行分析

目录 简介环境要求数据爬取爬取目标电影详情页反爬虫破解数据存储服务器搭建电影推荐 数据展示电影推荐电影评分电影票房电影类型词云 简介 这次是一次数据库实验,实验要求是了解最新的数据库,并使用!做一个简单案例使用。根据实际需要就采用…

Python—猫眼电影票房爬虫实战 轻松弄懂字体反爬!

目标 1.爬取猫眼票房信息 2.将信息保存起来(MySQL、Redis、MongoDB或者Excel等等),我们保存的是Excel 爬取网址 https://piaofang.maoyan.com/?vernormal&isid_key2d9aacd2f26d4d0dba63 分析 1.打开chrome,输入网址我们看到的效果如下 2.我们…