用100行python爬虫代码爬取豆瓣影评
时间: 2025-01-21 21:31:13 浏览: 57
好的,下面是一个用Python编写的简单爬虫代码,用于爬取豆瓣电影的影评。这个爬虫使用了`requests`库来发送HTTP请求,`BeautifulSoup`库来解析HTML内容。
```python
import requests
from bs4 import BeautifulSoup
import time
def get_movie_reviews(movie_url, num_pages=10):
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'}
reviews = []
for page in range(num_pages):
url = f"{movie_url}?start={(page * 20)}&limit=20&sort=new_score&status=P"
response = requests.get(url, headers=headers)
if response.status_code != 200:
print(f"Failed to fetch page {page + 1}")
continue
soup = BeautifulSoup(response.text, 'html.parser')
comment_divs = soup.find_all('div', class_='comment')
for div in comment_divs:
comment = div.find('span', class_='short').get_text(strip=True)
reviews.append(comment)
time.sleep(1) # Be polite and don't hammer the server
return reviews
if __name__ == "__main__":
movie_url = "https://movie.douban.com/subject/1292052/comments" # 示例电影:肖申克的救赎
reviews = get_movie_reviews(movie_url, num_pages=5)
for idx, review in enumerate(reviews, 1):
print(f"Review {idx}: {review}")
```
这个爬虫代码的工作原理如下:
1. 导入所需的库:`requests`用于发送HTTP请求,`BeautifulSoup`用于解析HTML,`time`用于控制请求频率。
2. 定义`get_movie_reviews`函数,接收电影URL和要爬取的页数作为参数。
3. 设置请求头,模拟浏览器行为。
4. 循环爬取每一页的影评。
5. 使用`BeautifulSoup`解析HTML,提取影评内容。
6. 每爬取一页后,暂停1秒,避免对服务器造成过大压力。
7. 在`__main__`块中,指定电影URL和要爬取的页数,调用`get_movie_reviews`函数,并打印爬取到的影评。
阅读全文
相关推荐















