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

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日

相关文章

  • 如何使用python把ppt转换成pdf

    下面是详细的Python将PPT转化为PDF的攻略。 说明 通常,将PPT转换为PDF是很有用的,因为它使得投影文稿更不易被拼写错误或意外编辑,并在不同的设备上实现更广泛的可访问性。Python提供了一些库,可以将PPT转换为PDF,并可以使用Python解决PDF文档的格式问题。 在此,我们将涵盖如何使用Python(pptx和reportlab库)将pp…

    python 2023年6月5日
    00
  • 在Python中对Hermite_e系列进行微分

    在Python中对Hermite_e系列进行微分的完整攻略,将给出如下的说明: 前置知识 在了解对Hermite_e系列进行微分之前,需要具备如下的前置知识: Python基础语法知识 NumPy库的基础使用方法 SymPy库的基础使用方法 Hermite_e系列及其相关概念的基础理解 需要注意的是,其中Hermite_e系列的相关概念可以通过查阅相关资料了…

    python-answer 2023年3月25日
    00
  • Python3查找列表中重复元素的个数的3种方法详解

    Python3查找列表中重复元素的个数的3种方法详解 在Python中,有多种方法可以查找列表中重复元素的个数。本文将介绍3种常用的方法,包括使用Counter()函数、使用set()函数和使用字典。下面将详细讲解这3种方法的实现原理和使用方法。 使用Counter()函数 Counter()函数是Python中的一个内置函数,用于统计列表中元素的个数。Co…

    python 2023年5月13日
    00
  • 详解 Python 读写XML文件的实例

    下面是我的详细讲解: Python 读写XML文件的实例 什么是XML文件 XML是一种可扩展标记语言(Extensible Markup Language),可以用来存储和传输数据。XML使用标记来描述数据,标记包括开始标记和结束标记,开始和结束标记中间是数据。 Python 读取XML文件 在Python中,我们可以使用ElementTree模块来读取X…

    python 2023年6月3日
    00
  • python爬虫概述

    网络爬虫的概念:模拟客户端(主要指浏览器),发送网络请求,获取网络响应数据的自动化程序。   爬虫的应用场景: 数据采集   通过python爬虫爬取微博事件评论,进行舆情分析;通过爬取互联网岗位信息,进行行业分析;天气预报等数据采集 软件测试   使用selenium进行软件测试 短信轰炸、12306买票等 http协议与https协议 http协议,超文…

    爬虫 2023年4月12日
    00
  • 详解使用PIL寻找图像之间的差异

    下面是关于使用PIL寻找图像之间的差异的完整攻略: 什么是PIL PIL(Python Imaging Library)是一个针对Python编程语言的图像处理库,它支持打开、编辑各种图片格式,处理图片的功能非常强大。我们可以使用PIL中的一些方法来寻找图像之间的差异。 安装和导入PIL 要使用PIL,首先需要安装它: pip install pillow …

    python-answer 2023年3月25日
    00
  • 详解Python的Twisted框架中reactor事件管理器的用法

    详解Python的Twisted框架中reactor事件管理器的用法 一、Twisted Reactor事件管理器简介 Twisted是一个开源Python网络编程框架,它使用事件驱动的方式实现异步I/O,允许程序员通过异步编程模型来处理多个并发操作,它提供了多条并发流程,常用协议的实现以及支持标准进程通信。 Twisted框架中,reactor是一个事件管…

    python 2023年6月3日
    00
  • python利用正则表达式排除集合中字符的功能示例

    当使用Python处理文本时,正则表达式是一个非常有用的工具。可以利用正则表达式进行字符串匹配、查找、替换等操作。其中,排除集合中的字符也是一种常见的需求。下面我将为大家详细介绍使用Python利用正则表达式排除集合中字符的功能示例。 1. 概述 在正则表达式中,[ ] 表示字符集合,代表任意一个满足条件的字符。例如,[abc]可以匹配字符串中任意一个字符是…

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