jupyter爬取豆瓣电影top250
时间: 2023-10-24 08:06:03 浏览: 126
爬取豆瓣电影TOP250
5星 · 资源好评率100%
好的,我可以为您提供一些指导。
首先,您需要安装Python并安装一些需要的库,例如 requests、beautifulsoup4 和 pandas。请确保您已经安装了它们。
接下来,您可以使用 Jupyter Notebook 创建一个新的笔记本。
在第一个单元格中,导入必要的库:
```python
import requests
from bs4 import BeautifulSoup
import pandas as pd
```
然后,您可以定义一个函数来获取每个电影的信息:
```python
def get_movie_info(url):
# 发送请求
response = requests.get(url)
# 解析HTML
soup = BeautifulSoup(response.text, 'html.parser')
# 获取电影标题
title = soup.select_one('span[property="v:itemreviewed"]').text
# 获取电影导演和演员
info = soup.select_one('div[id="info"]')
director = info.select_one('a[rel="v:directedBy"]').text
actors = [a.text for a in info.select('a[rel="v:starring"]')]
# 获取电影评分
rating = soup.select_one('strong[class="ll rating_num"]').text
# 获取电影评价人数
rating_num = soup.select_one('span[property="v:votes"]').text
# 返回字典
return {
'title': title,
'director': director,
'actors': actors,
'rating': rating,
'rating_num': rating_num
}
```
接下来,您可以使用此功能获取所有250部电影的信息:
```python
movies = []
for i in range(0, 250, 25):
url = f'https://movie.douban.com/top250?start={i}&filter='
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
for item in soup.select('div[class="hd"] > a'):
movie_info = get_movie_info(item['href'])
movies.append(movie_info)
```
最后,您可以将数据转换为 Pandas 数据帧:
```python
df = pd.DataFrame(movies)
print(df.head())
```
这是一个简单的示例,希望对您有所帮助!
阅读全文