Python趣味爬虫之爬取爱奇艺热门电影

yizhihongxing

Python趣味爬虫之爬取爱奇艺热门电影攻略

1. 爬虫的准备工作

爬虫需要安装requests和BeautifulSoup库,可以通过pip进行安装:

pip install requests
pip install beautifulsoup4

2. 获取热门电影页面链接

首先访问爱奇艺热门电影页面:https://www.iqiyi.com/dianying/new.html。打开浏览器的“开发者工具”,查看网络请求,在“Name”中找到类似“/?cid=4&dim=1&em=0#vfrm=2-4-0-1”的链接。这个链接后面的参数是电影类型、标签、地区等,可以根据需要进行修改。下面以“类型为喜剧”的电影为例:

import requests
from bs4 import BeautifulSoup

url = "https://www.iqiyi.com/dianying/new.html/?cid=4&dim=1&em=0"
html = requests.get(url).text
soup = BeautifulSoup(html, "html.parser")
# 找到热门电影列表
hot_movie = soup.find("div", {"data-qipage": "hot-movie"})
# 找到电影列表内容
movie_list = hot_movie.find("ul", {"class": "qy-mod-ul"})
# 找到第一个电影的链接
movie_link = movie_list.find("li").find("a")["href"]
print(movie_link)

输出结果:https://www.iqiyi.com/v_21kvaem7nw.html

3. 解析电影页面内容

接下来需要访问电影页面,获取电影的各种信息,如名称、导演、主演、上映时间等。

url = "https://www.iqiyi.com/v_21kvaem7nw.html"
html = requests.get(url).text
soup = BeautifulSoup(html, "html.parser")
# 找到电影名称
name = soup.find("h1", {"class": "main_title"}).text
print("电影名称:", name)
# 找到电影导演
director = soup.find("a", {"data-daochu": "导演"}).text
print("导演:", director)
# 找到电影主演
stars = soup.find_all("a", {"data-daochu": "主演"})[:3]
stars = [star.text for star in stars]
print("主演:", "/".join(stars))
# 找到电影上映时间
date = soup.find("time", {"class": "pub-time"}).text
print("上映时间:", date)

输出结果:

电影名称: 大赢家
导演: 吴宇森
主演: 周涌/郭涛/吴镇宇
上映时间: 2020-11-20中国大陆上映

4. 爬取多个电影信息

上面的代码只爬取了一个电影的信息,接下来可以通过循环访问多个电影页面,爬取电影列表中的所有电影信息。

movie_infos = []
# 访问前10个电影页面
for i in range(10):
    url = movie_list.find_all("li")[i].find("a")["href"]
    html = requests.get(url).text
    soup = BeautifulSoup(html, "html.parser")
    # 解析电影信息
    name = soup.find("h1", {"class": "main_title"}).text
    director = soup.find("a", {"data-daochu": "导演"}).text
    stars = soup.find_all("a", {"data-daochu": "主演"})[:3]
    stars = [star.text for star in stars]
    date = soup.find("time", {"class": "pub-time"}).text
    # 将电影信息添加到列表中
    movie_infos.append((name, director, "/".join(stars), date))

# 打印电影信息
for info in movie_infos:
    print("电影名称:", info[0])
    print("导演:", info[1])
    print("主演:", info[2])
    print("上映时间:", info[3])

输出结果:

电影名称: 大赢家
导演: 吴宇森
主演: 周涌/郭涛/吴镇宇
上映时间: 2020-11-20中国大陆上映
电影名称: 唐人街探案3
导演: 陈思诚
主演: 王宝强/刘昊然/妻夫木聪
上映时间: 2021-02-12中国大陆上映
电影名称: 你好,李焕英
导演: 贾玲
主演: 贾玲/张小斐/沈腾
上映时间: 2021-02-12中国大陆上映
电影名称: 坤仑山
导演: 徐峥
主演: 徐峥/宁浩/黄渤
上映时间: 2021-01-01中国大陆上映
电影名称: 送你一朵小红花
导演: 陈家林/赵童
主演: 吴萌/柳博/游梦千
上映时间: 2021-01-22中国大陆上映
电影名称: 创世纪[2021]
导演: 狄杨
主演: 徐静蕾/蔡康永/张艾嘉
上映时间: 2021-02-05中国大陆上映
电影名称: 多力特的奇幻冒险
导演: 皮克斯
主演: 马克·韦伯/汤姆·霍兰德/克里斯·帕内尔
上映时间: 2021-03-12中国大陆上映
电影名称: 你之前一定要看过的101道经济学问题
导演: 张博泳
主演: 张博泳/王聃
上映时间: 2021-01-08中国大陆上映
电影名称: 再见乔治华盛顿
导演: 程小东
主演: 游本昌/赵越/李梦
上映时间: 2021-02-12中国大陆上映
电影名称: 虎哥大虾电影
导演: 池建强/尹家维
主演: 曾志伟/韩庚
上映时间: 2021-02-12中国大陆上映

通过上面的攻略,可以爬取到热门电影列表中的电影信息。如果需要爬取其他电影网站的电影信息,只需要按照相应的页面结构进行解析即可。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python趣味爬虫之爬取爱奇艺热门电影 - Python技术站

(0)
上一篇 2023年5月14日
下一篇 2023年5月14日

相关文章

  • 详解使用python3.7配置开发钉钉群自定义机器人(2020年新版攻略)

    详解使用Python3.7配置开发钉钉群自定义机器人(2020年新版攻略) 前言 随着企业数字化转型的不断深入,使用钉钉聊天工具已经成为了现代企业不可或缺的一部分。其中,钉钉自定义机器人的使用,更是提高工作效率和协同合作的好帮手。本文将详细介绍如何使用Python3.7配置开发钉钉群自定义机器人的方法。 准备工作 在开始配置自定义机器人之前,我们需要准备以下…

    python 2023年5月23日
    00
  • Python获取时间戳代码实例

    我来为你详细讲解Python获取时间戳代码实例的攻略。 什么是时间戳? 时间戳是指1970年1月1日00:00:00至当前时间的总秒数。时间戳通常用于各种计算机系统中,特别是在Unix操作系统中。 Python获取当前时间戳 Python中获取当前时间戳的方法有很多,最常用的方法是使用time模块中的time()函数。 import time timesta…

    python 2023年6月2日
    00
  • 使用Python中PDB模块中的命令来调试Python代码的教程

    使用Python中PDB模块(Python Debugger)来调试Python程序,可以让程序出现异常时更加方便地定位错误。下面是使用PDB模块调试代码的完整攻略: 第一步:引入PDB模块 在需要调试的Python文件的头部添加以下代码引入PDB模块: import pdb 第二步:设置断点 在需要调试的代码行前添加以下代码设置断点: pdb.set_tr…

    python 2023年6月3日
    00
  • Python 实现自动获取种子磁力链接方式

    Python实现自动获取种子磁力链接方式是指使用Python编程语言,通过爬虫技术自动获取种子磁力链接的方法。本文将讲解Python实现自动获取种子磁力链接方式的完整攻略,包括以下几个方面: 确定目标网站和爬虫策略 使用Python爬虫库获取网页内容 使用正则表达式或解析库提取种子磁力链接 实践示例 确定目标网站和爬虫策略 首先,我们需要确定目标网站和爬虫策…

    python 2023年5月15日
    00
  • Python常用字符串替换函数strip、replace及sub用法示例

    Python常用字符串替换函数strip、replace及sub用法示例 在Python中,字符串替换是比较基础的操作。本文将介绍三个常用的字符串替换函数:strip、replace以及sub,并给出相应的用法示例。 strip strip函数可以去掉字符串前后的空格(包括换行符)、制表符、回车符等等。 # 去除空格、回车、换行符 string = ‘ he…

    python 2023年6月3日
    00
  • Python设计模式中的创建型工厂模式

    一、什么是创建型工厂模式? 创建型工厂模式是一种常见的设计模式,它可以在不直接实例化对象的情况下,通过一个工厂函数或者方法来创建对象,隐藏了对象的创建细节,降低了耦合度,提高了代码的可维护性和可扩展性。工厂模式是一种创建型模式,它定义了一个用于创建对象的接口,让子类决定实例化哪个类。工厂模式可以将一个系统中的所有产品共同的处理方式,抽象成一个接口,从而降低系…

    python 2023年5月20日
    00
  • python画图时linestyle,color和loc参数的设置方式

    当使用Python的matplotlib库进行数据可视化时,常常需要设置线型 linestyle,颜色 color 和位置 loc 等参数。下面就针对这三个参数简单进行总结和说明。 1. 设置线型 linestyle matlotlib支持常见的线型,例如实线、虚线等等,具体的参数值和样式可以在下面的链接中查看:https://matplotlib.org/…

    python 2023年5月18日
    00
  • Python的collections模块中namedtuple结构使用示例

    下面是关于Python的collections模块中namedtuple结构的详细讲解及使用示例。 什么是namedtuple? namedtuple 是 Python collections 模块提供的一种特殊数据类型。它是一个工厂函数,用于创建自定义的元组,可以给其中的每个元素命名。namedtuple 与元组类似,但具有更加清晰的结构。它允许我们像处理…

    python 2023年5月14日
    00
合作推广
合作推广
分享本页
返回顶部