python爬取豆瓣电影
时间: 2023-07-06 13:42:22 浏览: 60
好的,下面是一个简单的 Python 程序,可以用来爬取豆瓣电影的数据:
```python
import requests
from bs4 import BeautifulSoup
url = 'https://movie.douban.com/top250'
# 发送请求
response = requests.get(url)
# 解析HTML
soup = BeautifulSoup(response.text, 'html.parser')
# 获取电影列表
movies = soup.find_all('div', class_='info')
# 遍历电影列表,获取电影名称、评分等信息
for movie in movies:
# 电影名称
title = movie.find('span', class_='title').text.strip()
# 评分
rating = movie.find('span', class_='rating_num').text.strip()
# 导演、演员等信息
info = movie.find('div', class_='bd').p.text.strip()
print(title, rating, info)
```
这个程序会爬取豆瓣电影 Top250 的电影名称、评分、导演等信息,并将其打印出来。你可以根据自己的需要修改程序,比如爬取其他页面的数据,或者将数据保存到文件中。
相关问题
用python爬取豆瓣电影
好的,以下是利用 Python 爬取豆瓣电影的基本步骤:
1. 安装相关库
我们需要使用 requests 库来发送 HTTP 请求,以及使用 BeautifulSoup 库来解析 HTML 页面。你可以使用以下命令安装这两个库:
```python
pip install requests beautifulsoup4
```
2. 发送 HTTP 请求
我们可以使用 requests 库中的 get 方法来向豆瓣电影的网站发送 HTTP 请求,并获得响应:
```python
import requests
url = 'https://movie.douban.com/top250'
response = requests.get(url)
```
3. 解析 HTML 页面
我们可以使用 BeautifulSoup 库将响应的 HTML 页面解析成 BeautifulSoup 对象:
```python
from bs4 import BeautifulSoup
soup = BeautifulSoup(response.text, 'html.parser')
```
4. 提取电影数据
在 BeautifulSoup 对象中,我们可以使用 find 或 find_all 方法来查找特定的 HTML 标签和属性。通过查看豆瓣电影 Top250 页面的 HTML 结构,我们可以发现每个电影都包含在一个 class 为 "item" 的 div 标签中,而每个电影的名称和评分则分别包含在 class 为 "title" 和 "rating_num" 的 span 标签中。因此,我们可以使用以下代码来提取电影名称和评分:
```python
movies = soup.find_all('div', class_='item')
for movie in movies:
title = movie.find('span', class_='title').text.strip()
rating = movie.find('span', class_='rating_num').text.strip()
print(title, rating)
```
以上就是利用 Python 爬取豆瓣电影的基本步骤。当然,还可以根据需要提取更多的电影数据,例如导演、演员、上映时间等。
python爬取豆瓣电影短评
要使用Python爬取豆瓣电影短评,可以按照以下步骤进行:
1. 导入必要的库,包括requests、BeautifulSoup和pandas。
```python
import requests
from bs4 import BeautifulSoup
import pandas as pd
```
2. 定义一个函数,用于获取指定电影的短评。该函数需要传入电影的URL和要获取的页数。
```python
def get_comments(url, pages):
comments = []
for i in range(pages):
# 构造URL
url_page = url + 'comments?start=' + str(i * 20) + '&limit=20&status=P&sort=new_score'
# 发送请求
response = requests.get(url_page)
# 解析HTML
soup = BeautifulSoup(response.text, 'html.parser')
# 获取评论
items = soup.find_all('div', class_='comment-item')
for item in items:
comment = item.find('span', class_='short').text.strip()
comments.append(comment)
return comments
```
3. 调用该函数获取指定电影的短评,并将结果保存到CSV文件中。
```python
# 电影《肖申克的救赎》的URL
url = 'https://movie.douban.com/subject/1292052/'
# 获取短评
comments = get_comments(url, 5)
# 将结果保存到CSV文件中
df = pd.DataFrame({'comments': comments})
df.to_csv('comments.csv', index=False)
```