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使用xlrd读取Excel格式文件的方法

    下面我将介绍如何使用 Python 的 xlrd 库读取 Excel 格式文件。我们将会使用两个简单的示例来说明。本教程将完整地介绍如何安装 xlrd 库,读取 Excel 文件的基本信息以及如何处理 Excel 文件中的数据。 安装 xlrd 库 在 Python 中读取 Excel 文件需要使用到 xlrd 库,如果你没有安装这个库的话,需要首先安装它。…

    python 2023年5月13日
    00
  • 详解【python】str与json类型转换

    《详解【python】str与json类型转换》攻略 1. 什么是str和json类型 在Python中,我们可以将一个对象转换为字符串类型,也可以将一个字符串类型转换为Python能够处理的数据类型(比如list、dict等)。这个字符串类型就是str类型。 而JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它采…

    python 2023年6月3日
    00
  • python安装dlib库报错问题及解决方法

    当我们在Python编程过程中需要使用dlib库时,可能会遇到各种安装错误。以下是解决Python安装dlib库报错问题及解决方法的完整攻略: 1. 安装依赖项 在安装dlib之前,需要安装一些依赖项。这些依赖项包括cmake、boost和X11。我们可以使用以下命令来安装这依赖: sudo apt-get install build-essential c…

    python 2023年5月13日
    00
  • 最新豆瓣top250爬虫案例代码分析[注释齐全]

    导入包 # json包 import json #正则表达式包 import re import requests from requests import RequestException 定义爬取html函数 #函数:获取一页html def get_one_page(url): try: headers = { ‘User-Agent’: ‘Mozil…

    爬虫 2023年4月12日
    00
  • Python asyncio的一个坑

    Python asyncio的一个坑 在使用Python的asyncio库进行异步编程时,有一个常见的坑点是在协程中使用了阻塞式的同步代码,这会导致整个事件循环被阻塞,从而影响程序的性能和响应速度。以下是详细解“Python asyncio的一个坑”的完整攻略。 问题描述 在Python的asyncio库中,我们通常使用async/await关键字来定义协程…

    python 2023年5月13日
    00
  • Python代理IP爬虫的新手使用教程

    Python代理IP爬虫的新手使用教程 本攻略将介绍如何使用Python代理IP爬虫。我们将使用requests库发送HTTP请求,并使用代理IP来隐藏我们的真实IP地址。 安装requests库 在开始前,我们需要安装requests库。我们可以使用以下命令在命令行中安装requests库: pip install requests 发送HTTP请求 我们…

    python 2023年5月15日
    00
  • python+selenium实现自动抢票功能实例代码

    关于“python+selenium实现自动抢票功能实例代码”的完整攻略,我会从以下方面详细讲解: 环境搭建:Python、Selenium、ChromeDriver 实现步骤:登录,查询,选择,购买 两个示例说明:12306抢票、淘宝秒杀 具体讲解如下: 环境搭建 在开始之前,我们需要搭建好相应的环境: 安装Python:从官网下载对应版本的Python,…

    python 2023年5月19日
    00
  • pygame实现时钟效果

    下面是关于用Pygame实现时钟效果的完整攻略,包含了步骤、代码示例和详细说明。 步骤 导入Pygame库。因为本文所讲的内容涉及到窗口绘图操作,所以需要用到Pygame库。 python import pygame 初始化Pygame。在继续之前,需要对Pygame进行初始化。 python pygame.init() 设定窗口大小。根据自己的需要,设定窗…

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