jupyter notebook爬取豆瓣top250
时间: 2024-12-08 09:12:04 浏览: 28
在Jupyter Notebook中爬取豆瓣Top250电影信息,可以使用Python的requests库来发送HTTP请求,BeautifulSoup库来解析HTML内容。以下是一个简单的示例代码,展示了如何爬取豆瓣Top250电影的基本信息:
```python
import requests
from bs4 import BeautifulSoup
import pandas as pd
# 设置请求头,模拟浏览器请求
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36'
}
# 存储电影信息的列表
movies = []
# 豆瓣Top250的URL,每页25部电影,共10页
for i in range(10):
url = f'https://movie.douban.com/top250?start={i*25}&filter='
# 发送GET请求
response = requests.get(url, headers=headers)
# 解析HTML内容
soup = BeautifulSoup(response.text, 'html.parser')
# 找到所有电影条目
movie_list = soup.find_all('div', class_='item')
for movie in movie_list:
# 电影标题
title = movie.find('span', class_='title').text
# 电影评分
rating = movie.find('span', class_='rating_num').text
# 电影评价人数
num_reviews = movie.find('div', class_='star').find_all('span')[-1].text
# 电影简介
info = movie.find('p', class_='').text.strip()
# 将电影信息添加到列表中
movies.append({
'title': title,
'rating': rating,
'num_reviews': num_reviews,
'info': info
})
# 将电影信息保存到DataFrame中
df = pd.DataFrame(movies)
# 打印DataFrame
print(df)
# 将数据保存到CSV文件
df.to_csv('douban_top250.csv', index=False)
```
这个示例代码首先设置了请求头,模拟浏览器请求。然后使用for循环遍历豆瓣Top250的每一页,每页25部电影,共10页。对于每一页,使用BeautifulSoup解析HTML内容,找到所有电影条目,并提取电影标题、评分、评价人数和简介等信息。最后,将所有电影信息保存到一个DataFrame中,并导出为CSV文件。
阅读全文