Python 语言 用 Requests+BeautifulSoup 爬取豆瓣电影 Top250 含评分 / 导演

Python阿木 发布于 13 小时前 2 次阅读


豆瓣电影 Top250 爬取与解析:使用 Requests 和 BeautifulSoup

豆瓣电影作为中国最大的电影社区之一,其电影评分和评论具有较高的参考价值。本文将介绍如何使用 Python 的 Requests 和 BeautifulSoup 库来爬取豆瓣电影 Top250 的信息,包括电影名称、评分和导演等。通过学习本文,读者可以了解网络爬虫的基本原理和实现方法。

爬虫基础知识

在开始编写爬虫代码之前,我们需要了解一些爬虫基础知识:

1. Requests 库:用于发送 HTTP 请求,获取网页内容。
2. BeautifulSoup 库:用于解析 HTML 和 XML 文档,提取所需信息。
3. 正则表达式:用于匹配和提取文本信息。

爬虫实现步骤

1. 导入所需库

python
import requests
from bs4 import BeautifulSoup
import re

2. 发送 HTTP 请求

python
def get_html(url):
try:
response = requests.get(url, headers={'User-Agent': 'Mozilla/5.0'})
response.raise_for_status() 检查请求是否成功
return response.text
except requests.HTTPError as e:
print(e)
return None

3. 解析 HTML 文档

python
def parse_html(html):
soup = BeautifulSoup(html, 'html.parser')
movie_list = soup.find_all('tr', class_='item')
movies = []
for movie in movie_list:
title = movie.find('a', class_='nbg').text.strip()
rating = movie.find('span', class_='rating_num').text
director = movie.find('a', class_='nbg').find_next_sibling('a').text.strip()
movies.append({'title': title, 'rating': rating, 'director': director})
return movies

4. 爬取豆瓣电影 Top250

python
def crawl_douban_top250():
base_url = 'https://movie.douban.com/top250?start={}'
movies = []
for i in range(0, 250, 25):
url = base_url.format(i)
html = get_html(url)
if html:
movies.extend(parse_html(html))
return movies

5. 打印电影信息

python
def print_movies(movies):
for movie in movies:
print(f"电影名称:{movie['title']}")
print(f"评分:{movie['rating']}")
print(f"导演:{movie['director']}")
print('-' 20)

6. 主函数

python
def main():
movies = crawl_douban_top250()
print_movies(movies)

if __name__ == '__main__':
main()

总结

本文介绍了如何使用 Python 的 Requests 和 BeautifulSoup 库来爬取豆瓣电影 Top250 的信息。通过以上步骤,我们可以获取电影名称、评分和导演等数据。在实际应用中,我们可以根据需要对这些数据进行进一步的处理和分析。

注意事项

1. 遵守网站政策:在爬取数据时,请确保遵守目标网站的爬虫政策,避免对网站造成不必要的负担。
2. 异常处理:在编写爬虫代码时,要考虑各种异常情况,如网络请求失败、解析错误等。
3. 数据存储:爬取到的数据可以存储到数据库、文件或其他存储介质中,以便后续分析和使用。

通过学习本文,读者可以掌握网络爬虫的基本原理和实现方法,为后续的数据分析和挖掘打下基础。