认识爬虫:如何使用 requests 模块根据电影类型爬取豆瓣电影排名前20的信息与评分
使用Python的requests模块可以轻松实现对豆瓣电影排行榜的爬取。以下是一个简单的示例代码,它将爬取前20部电影的名称、类型、评分和评论数。
import requests
from bs4 import BeautifulSoup
# 定义豆瓣电影TOP250的URL
base_url = 'https://movie.douban.com/top250/'
# 定义一个列表来保存所有电影信息
movies = []
# 循环访问每一页
for page in range(0, 250, 25):
# 构造具体页面的URL
url = base_url + str(page)
# 发送HTTP请求
response = requests.get(url)
# 检查请求是否成功
if response.status_code == 200:
# 使用BeautifulSoup解析页面
soup = BeautifulSoup(response.text, 'html.parser')
# 找到包含电影信息的列表
movie_list = soup.find('ol', class_='grid_view')
# 遍历电影列表,提取信息
for movie in movie_list.find_all('li'):
name = movie.find('div', class_='info').find('div', class_='hd').find('a').text
rating = movie.find('div', class_='info').find('div', class_='bd').find('div', class_='star').find('span', class_='rating_num').text
score = movie.find('div', class_='info').find('div', class_='bd').find('p', class_='quote').text
comments = movie.find('div', class_='star').find_next_sibling('div', class_='bd').find('p', class_='quote').text
# 将提取的信息添加到movies列表中
movies.append({
'name': name,
'rating': rating,
'score': score,
'comments': comments
})
print(f"{name} 已添加到列表。")
else:
print(f"请求页面{url}失败。")
# 打印movies列表,查看爬取的结果
print(movies)
请注意,这个示例代码没有处理网络请求中的异常,也没有考虑反爬虫策略。实际应用中可能需要添加更多的错误处理和反反爬虫措施。
评论已关闭