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技术站