【python】爬取豆瓣影评保存到Excel文件中
import requests
import pandas as pd
from bs4 import BeautifulSoup
# 设置请求头,模拟浏览器访问
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'}
# 获取豆瓣电影的id
def get_movie_id(url):
return url.split('/')[-2]
# 爬取影评
def crawl_comments(url):
movie_id = get_movie_id(url)
comments = []
for i in range(0, 25):
# 拼接请求的URL
url_with_start = f'https://movie.douban.com/subject/{movie_id}/comments?start={i*20}&limit=20'
# 发送请求
res = requests.get(url_with_start, headers=headers)
# 解析HTML
soup = BeautifulSoup(res.text, 'lxml')
# 提取评论内容
for comment in soup.find_all('p', class_='comment-content'):
comments.append(comment.text)
return comments
# 保存到Excel文件
def save_to_excel(comments, filename):
df = pd.DataFrame(comments, columns=['Comment'])
df.to_excel(filename + '.xlsx', index=False)
# 主函数
def main(movie_url):
comments = crawl_comments(movie_url)
save_to_excel(comments, 'douban_comments')
if __name__ == '__main__':
movie_url = 'https://movie.douban.com/subject/12927214/' # 例如,这是豆瓣上一个电影的URL
main(movie_url)
这段代码首先定义了请求头,用于模拟浏览器访问豆瓣网站。get_movie_id
函数用于从电影页面的URL中提取电影的ID。crawl_comments
函数用于爬取影评,它通过循环请求不同的URL来获取页面上的所有评论。最后,将爬取的评论保存到一个Excel文件中。在主函数main
中,调用这些函数,并传入豆瓣电影页面的URL。
评论已关闭