连续爬取多页豆瓣网《我和我的祖国》电影的影评数据,爬取信息包括用户名、评价、评价日期、评价内容。网页照!地址为:https://movie.douban.com/<subiect/32659890/comments?start-0.
时间: 2024-11-13 16:27:52 浏览: 0
热门电影影评数据爬取_爬虫python_爬取数据_爬取豆瓣影评_数据爬虫_python爬虫_
5星 · 资源好评率100%
在Python中,你可以使用BeautifulSoup库配合requests库来抓取豆瓣电影《我和我的祖国》的影评数据。这里是一个简单的步骤说明:
1. **安装必要的库**:
首先,你需要安装`requests`, `beautifulsoup4`和`lxml`库,可以使用pip进行安装:
```
pip install requests beautifulsoup4 lxml
```
2. **编写爬虫脚本**:
```python
import requests
from bs4 import BeautifulSoup
url = "https://movie.douban.com/subject/32659890/comments"
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'
}
page_num = 1
while True:
params = {'start': str(page_num * 20)} # 每页显示20条评论,需要调整为实际每页评论数
response = requests.get(url, headers=headers, params=params)
if response.status_code == 200:
soup = BeautifulSoup(response.text, 'lxml')
comments_list = soup.find_all('div', class_='comment-item')
for comment in comments_list:
username = comment.find('span', class_='comment-info').find('a').text
review_date = comment.find('time')['datetime']
rating = comment.find('span', class_='rating_nums').text # 评分可能会变化,需调整CSS选择器
review_content = comment.find('p', class_='short').text
print(f"用户名:{username}, 评分:{rating}, 评论日期:{review_date}, 评论内容:{review_content}")
next_page = soup.find('span', string='下一页') # 查找下一页链接
if not next_page or 'class="next"' not in str(next_page): # 如果没有下一页或已经是最后一页
break
page_num += 1
else:
break
```
3. **注意事项**:
- 爬虫应遵守网站的robots.txt规则,并尽量减少对服务器的压力。
- 如果网站结构有变动,可能需要更新CSS选择器来定位元素。
- 实际运行此脚本前,请确认URL和页面布局是否保持不变。
阅读全文