【爬虫学习】实战篇1:猫眼电影票房爬虫

        今天咱们来学习一个爬虫的具体实战:爬取猫眼电影票房的数据

        目标:使用python自带的urllib库编写一个小程序,我们只需启动小程序,就可以实时爬取猫眼的电影票房数据,并自动将数据生成一个excel保存至本地文件夹。

        接下来,我将尽可能详细地介绍爬虫编写的步骤,希望大家可以跟着我一步步操作,全部编写完成之后,我们可以展开想象的翅膀,触类旁通,使用相同的技巧去获取自己需要的公开数据吧!

步骤1:打开猫眼的官网,查看首页的内容,并获取对应的url。

        上图就是打开猫眼票房之后的页面,大约公布了80+部目前在放映的电影名称和综合票房的数据,这个数据就是我们希望爬取的数据。同时,url我们也已经知道了:

        https://piaofang.maoyan.com/dashboard 

步骤2:打开python终端,导入urllib库和request模块,编写请求头,获取完整HTML代码。

        这个步骤是单纯地写代码,代码我就不详细解释了,如下:

from urllib import request

# 填写猫眼url:
url = 'https://piaofang.maoyan.com/dashboard '
# 填写user-agent:
header = {
    'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36'
        }
# 使用request模块中的Request类,创建一个猫眼url对应的类:
resp = request.Request(url,headers=header)
# 使用request模块中的urlopen函数,打开上面的resp:
resp_html = request.urlopen(resp)
# 打印猫眼的html代码:
print(resp_html.read())

        运行代码,发生报错:

         错误原因中文翻译:证书验证失败:无法获取本地颁发者证书。

        说实话,不太懂SSL证书的含义,但是通过CSDN查询,只要在代码开头引入ssl并取消ssl认证就不会再报错了。

from urllib import request
# 引入ssl,取消全局ssl认证:
import ssl
ssl._create_default_https_context = ssl._create_unverified_context

# 填写猫眼url:
url = 'https://piaofang.maoyan.com/dashboard '
# 填写user-agent:
header = {
    'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36'
        }
# 使用request模块中的Request类,创建一个猫眼url对应的类:
resp = request.Request(url,headers=header)
# 使用request模块中的urlopen函数,打开上面的resp:
resp_html = request.urlopen(resp)
# 打印猫眼的html代码:
print(resp_html.read())

 

        上图即为猫眼HTML源代码了,内容是比较多的。

步骤3:对HTML源代码进行解码,把ASCII代码转换为中文字符。

        非常简单,在read方法后跟上使用decode方法,解码为utf-8,代码如下:

from urllib import request
# 引入ssl,取消全局ssl认证:
import ssl
ssl._create_default_https_context = ssl._create_unverified_context

# 填写猫眼url:
url = 'https://piaofang.maoyan.com/dashboard '
# 填写user-agent:
header = {
    'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36'
        }
# 使用request模块中的Request类,创建一个猫眼url对应的类:
resp = request.Request(url,headers=header)
# 使用request模块中的urlopen函数,打开上面的resp:
resp_html = request.urlopen(resp)
# 打印猫眼的html代码:
print(resp_html.read().decode('utf-8'))

        再运行代码一次,发现HTML代码中出现中文汉字,解码成功:

步骤4:发现需要的票房数据并不在HTML源代码中

        回到猫眼票房首页,随便选一个票房的数字,在python的代码输出端检索,发现没找到,表明票房的数据并未放在HTML源代码中,那么,票房数据是放在哪里呢?

        我们在猫眼票房页面,右键-检查-network,我们发现电影名称或者票房数据似乎藏在以下文件中:

步骤5:调整我们的url,把藏有票房数据的url更新到代码中

        我们更新下代码:

         很多数据浮现出来,但是最重要的一些数据(红色方框),我们发现并不是阿拉伯数字,而是一串很奇怪的代码。这表明,猫眼知道了很多爬虫想要爬取票房数据,他们设置了加密,我们还需要解密这一串乱七八糟的代码!

        

  • 5
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Python爬虫猫眼电影票房是一种通过编写Python代码自动获取猫眼网站上的实时票房数据的方法。在这个过程中,爬虫程序会访问猫眼电影的网页并提取所需的数据。根据引用和引用[2]的内容,我可以提供以下步骤来说明Python爬虫猫眼电影票房的过程: 1. 确定爬取目标:首先要确定要爬取的猫眼电影票房数据的网页地址和需要的数据类型,比如电影名称、票房金额等。 2. 导入相关库:在Python环境中,需要导入一些常用的库,比如requests用于发送HTTP请求、BeautifulSoup用于解析HTML、pandas用于数据处理等。 3. 发送请求并解析HTML:使用requests库发送一个HTTP请求,获取网页的HTML内容。然后使用BeautifulSoup库解析HTML,从中提取出所需的数据。 4. 数据处理:使用pandas库对提取出的数据进行处理和清洗,例如去除重复的数据、处理缺失值等。 5. 存储数据:将清洗后的数据存储到本地文件或数据库中,以备后续分析和使用。 以上是Python爬虫猫眼电影票房的基本步骤。需要注意的是,爬虫过程中可能会遇到反爬虫机制,如引用中所提到的。为了解决这个问题,可以尝试使用一些反反爬虫的方法,比如设置请求头、使用代理IP等。 希望以上内容对你有所帮助。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [Python爬虫实战案例一:爬取猫眼电影](https://blog.csdn.net/2201_75362610/article/details/130763417)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [【Python爬虫】爬取猫眼电影票房](https://blog.csdn.net/shenghaomail/article/details/88676506)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值