【python爬虫实战】用python爬取爱奇艺电视剧十大榜单的全部数据!

这篇具有很好参考价值的文章主要介绍了【python爬虫实战】用python爬取爱奇艺电视剧十大榜单的全部数据!。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录
  • 一、爬取目标
  • 二、讲解代码
  • 三、查看结果
  • 四、视频演示
  • 五、附完整源码

一、爬取目标

本次爬取的目标是,爱奇艺电视剧类目下的10个榜单:电视剧风云榜-爱奇艺风云榜
【python爬虫实战】用python爬取爱奇艺电视剧十大榜单的全部数据!

可以看到,这10个榜单包含了:
热播榜、飙升榜、必看榜、古装榜、言情榜、都市榜、搞笑榜、年代榜、悬疑榜、奇幻榜。

我们以热播榜为例,打开Chrome浏览器,按F12进入开发者模式,选择网络 -> XHR这个选项,重新刷新一下页面,并且逐次下拉页面到最底部,展现出全部100部电视剧:
【python爬虫实战】用python爬取爱奇艺电视剧十大榜单的全部数据!

查看捕获到的请求链接地址,每翻一次页,出现一条链接地址,并且该地址的响应数据就是20条电视剧的数据。
所以,这个地址就是我们要请求的地址了。

二、讲解代码

首先,导入需要用到的爬虫库:

import requests  # 发送请求
import pandas as pd  # 存入excel文件
from time import sleep  # 随机等待,防止反爬
import random  # 设置随机

从请求地址的Request Header处,拷贝过来一个请求头,放到代码里:

headers = {
	'accept': 'application/json, text/plain, */*',
	'accept-encoding': 'gzip, deflate, br',
	'accept-language': 'zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7',
	'origin': 'https://www.iqiyi.com',
	'referer': 'https://www.iqiyi.com/',
	'sec-ch-ua': '" Not A;Brand";v="99", "Chromium";v="100", "Google Chrome";v="100"',
	'sec-ch-ua-mobile': '?1',
	'sec-ch-ua-platform': '"Android"',
	'sec-fetch-dest': 'empty',
	'sec-fetch-mode': 'cors',
	'sec-fetch-site': 'same-site',
	'user-agent': 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.60 Mobile Safari/537.36'
}

爱奇艺的这个榜单页面,反爬不那么厉害,请求头中连cookie都不用加!
由于我想自动爬取这10个榜单,每个榜单对应一个tag标签,从哪里获取呢?经过分析,是从另外一个请求地址返回的:
【python爬虫实战】用python爬取爱奇艺电视剧十大榜单的全部数据!
发现了吗?每个榜单名称是一个tagName,对应一个tagId。拿到tagId,带入到榜单数据的请求地址中:

for page in range(1, 5):
	url = 'https://pcw-api.iqiyi.com/strategy/pcw/data/topRanksData?page_st={}&tag={}&category_id=2&date=&pg_num={}'.format(v_tag_id, v_tag_id, page)
	r = requests.get(url, headers=headers)

这样,就完成了向页面发送请求的过程。

顺便说一下这个for循环,一共翻4页,每页25条数据,对应一共100部电视剧。

用json格式接收返回的数据:

json_data = r.json()

然后开始解析json数据:

content_list = json_data['data']['formatData']['data']['content']
for content in content_list:
	# 排名
	order_list.append(order)
	# 标题
	title_list.append(content['title'])
	print(order, ' ', content['title'])
	# 描述
	try:
		desc_list.append(content['desc'])
	except:
		desc_list.append('')
	# 标签
	tags_list.append(content['tags'])
	tag_info = content['tags'].split(' / ')
	# 上映年份
	year = tag_info[0]
	year_list.append(year)
	# 主演
	actor = tag_info[-1]
	actor_list.append(actor)
	# 弹幕
	try:
		danmu_list.append(content['danmu'].replace('条弹幕', ''))
	except:
		danmu_list.append('')
	# 霸榜
	try:
		babang_list.append(content['babang'])
	except:
		babang_list.append('')
	# 实时热度
	if v_tag_name == '飙升榜':
		index_list.append(content['index'] + '%')
	else:
		index_list.append(content['index'])
	order += 1

最后,依然采用我最顺手的方法,拼装成DataFrame的格式,保存到excel文件:

df = pd.DataFrame({
		'排名': order_list,
		'标题': title_list,
		'描述': desc_list,
		'标签': tags_list,
		'上映年份': year_list,
		'主演': actor_list,
		'弹幕': danmu_list,
		'霸榜': babang_list,
		'实时热度': index_list,
	})
if v_tag_name == '飙升榜':  # 如果是飙升榜,把excel标题中的'实时热度'改为'飙升幅度'
	df.rename(columns={'实时热度': '飙升幅度'}, inplace=True)
df.to_excel('爱奇艺电视剧_{}.xlsx'.format(v_tag_name), index=False)

这里,需要注意一个小逻辑,飙升榜的'实时热度'需要rename为'飙升幅度',因为飙升榜跟其他榜单不一样!
【python爬虫实战】用python爬取爱奇艺电视剧十大榜单的全部数据!

三、查看结果

共爬取到10个榜单文件:
【python爬虫实战】用python爬取爱奇艺电视剧十大榜单的全部数据!

随便打开一个文件,比如,热播榜:
【python爬虫实战】用python爬取爱奇艺电视剧十大榜单的全部数据!

比如,都市榜:
【python爬虫实战】用python爬取爱奇艺电视剧十大榜单的全部数据!

除了搞笑榜有40+条数据,其他榜单都是100条数据,对应100部电视剧。

四、视频演示

代码演示视频:https://www.bilibili.com/video/BV1fT4y1e7wd/

五、附完整源码

完整源码:【python爬虫实战】用python爬取《爱奇艺风云榜》电视剧十大榜单!2023.6发布


我是 @马哥python说 ,持续分享python源码干货中!文章来源地址https://www.toymoban.com/news/detail-475212.html

到了这里,关于【python爬虫实战】用python爬取爱奇艺电视剧十大榜单的全部数据!的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 使用Python打造一个爱奇艺热播好剧提前搜系统

    目录 一、系统功能设计 二、数据获取与处理 三、搜索功能实现 四、用户界面设计 五、系统部署与维护 六、总结 随着互联网的普及和人们对于娱乐需求的增加,视频网站成为了人们观看电视剧、电影等视频内容的主要渠道。爱奇艺作为国内知名的视频网站之一,拥有大量的

    2024年02月02日
    浏览(22)
  • 爱奇艺万能联播使用教程

    软件是官方版本,大家双击安装即可。 安装完成以后,在软件中就有了 “访问网盘” 的按钮。 点击后登录自己的网盘帐号,即能查看自己网盘的消息。 我这个百度网盘是没有充值SVIP的,百度网盘下载只有十几K的速度。 但我用这个 “万能联播网盘插件” ,我选择了一部电

    2024年02月05日
    浏览(22)
  • 100万级连接,爱奇艺WebSocket网关如何架构

    在40岁老架构师 尼恩的 读者社区 (50+)中,很多小伙伴拿到一线互联网企业如阿里、网易、有赞、希音、百度、滴滴的面试资格。 最近,尼恩指导一个小伙伴简历,写了一个《 高并发网关项目 》,此项目帮这个小伙拿到 字节/阿里/微博/汽车之家 面邀, 所以说,这是一个牛逼

    2024年02月09日
    浏览(33)
  • html实现视频网站,仿爱奇艺,搜狐,迅雷看看(附源码)

    作者:xcLeigh 文章地址:https://blog.csdn.net/weixin_43151418/article/details/131516313 html实现视频网站,仿爱奇艺,搜狐,迅雷看看(附源码) ,视频源码,播放器源码。包括视频播放,选择播放集数,自动播放下一集;包括仿爱奇艺,搜狐,迅雷看看首页面;包括影视官网。可在此基础上,完

    2024年02月12日
    浏览(24)
  • 爱奇艺大数据加速:从Hive到Spark SQL

    01 爱奇艺自2012年开展大数据业务以来,基于大数据开源生态服务建设了一系列平台,涵盖了数据采集、数据处理、数据分析、数据应用等整个大数据流程,为公司的运营决策和各种数据智能业务提供了强有力的支持。随着数据规模的不断增长和计算复杂度的增加,如何快速挖

    2024年02月08日
    浏览(27)
  • 架构设计内容分享(四十一):100万级连接,爱奇艺WebSocket网关如何架构

    目录 100W级连接,爱奇艺WebSocket推送网关架构 1、旧方案存在的技术痛点 2、新方案的技术目标 3、新方案的技术选型 4、新方案的实现思路 4.1 系统架构 4.2 会话管理 4.3 监控与报警 5、新方案的性能压测 6、新方案的实际应用案例 7、总结 HTTP 协议属于一种无状态、基于 TCP 的请

    2024年01月23日
    浏览(39)
  • python爬虫实战——小说爬取

    基于 requests 库和 lxml 库编写的爬虫,目标小说网站域名http://www.365kk.cc/,类似的小说网站殊途同归,均可采用本文方法爬取。 目标网站 :传送门 本文的目标书籍 :《我的师兄实在太稳健了》 “渡劫只有九成八的把握,和送死有什么区别?” 网络爬虫的工作实际上主要分为

    2024年02月06日
    浏览(28)
  • Python爬虫实战——爬取新闻数据(简单的深度爬虫)

            又到了爬新闻的环节(好像学爬虫都要去爬爬新闻,没办法谁让新闻一般都很好爬呢XD,拿来练练手),只作为技术分享,这一次要的数据是分在了两个界面,所以试一下深度爬虫,不过是很简单的。  网页url 1.先看看网站网址的规律  发现这部分就是每一天的新闻

    2024年02月11日
    浏览(30)
  • 六个步骤学会使用Python爬虫爬取数据(爬虫爬取微博实战)

    用python的爬虫爬取数据真的很简单,只要掌握这六步就好,也不复杂。以前还以为爬虫很难,结果一上手,从初学到把东西爬下来,一个小时都不到就解决了。 第一步:安装requests库和BeautifulSoup库 在程序中两个库的书写是这样的: 由于我使用的是pycharm进行的python编程。所以

    2024年02月08日
    浏览(34)
  • python爬虫实战(1)--爬取新闻数据

    想要每天看到新闻数据又不想占用太多时间去整理,萌生自己抓取新闻网站的想法。 使用python语言可以快速实现,调用 BeautifulSoup 包里面的方法 安装BeautifulSoup 完成以后引入项目 定义请求头,方便把请求包装成正常的用户请求,防止被拒绝 定义被抓取的url,并请求加上请求

    2024年02月13日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包