历史

爬取豆瓣电影最新评论的Python爬虫代码示例

佚名资讯人气:276时间:2025-04-21 20:17:09

随着互联网的发展,电影评论成为广大影迷表达观影感受的重要平台。豆瓣电影作为中国最大的电影、图书、音乐等文化产品评分和评论网站,其评论内容丰富且具有较高的参考价值。因此,许多开发者和数据分析者希望通过编写Python爬虫,自动采集豆瓣电影的最新评论,以做情感分析、用户行为研究或推荐系统等。本文将以“爬取豆瓣电影最新评论的Python爬虫代码示例”为主题,详细介绍实现思路和示例代码,帮助读者快速入门。

爬取豆瓣电影最新评论的Python爬虫代码示例图1

首先,了解豆瓣电影评论的网页结构是爬取的前提。豆瓣电影的评论页面通常是以分页的形式展现最新评论(例如:https://movie.douban.com/subject/电影ID/comments)。每条评论包含评论者昵称、评论内容、评分、时间等信息。通过观察网页源码,我们会发现评论数据多数以HTML文本形式存储,可以通过解析HTML提取相应内容。

爬取时要注意豆瓣对机器人访问有限制,比如访问频率限制和部分接口需要登录,因此建议合理设置请求间隔,模拟正常用户访问,避免被封IP。可以使用Python的requests库发送HTTP请求,BeautifulSoup进行HTML解析。此外,若需要异步并发抓取,可以考虑aiohttp和asyncio库。

爬取豆瓣电影最新评论的Python爬虫代码示例图2

下面是一个简单的Python爬虫代码示例,通过requests请求豆瓣电影评论页,使用BeautifulSoup提取最新评论内容。此示例仅爬取第一页最新评论,供初学者参考:

import requests from bs4 import BeautifulSoup import time def get_douban_comments(movie_id, page=1): # 豆瓣评论URL构造 url = fhttps://movie.douban.com/subject/{movie_id}/comments?start={(page-1)*20}&limit=20&status=P&sort=new_score headers = { User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko), Referer: fhttps://movie.douban.com/subject/{movie_id}/ } response = requests.get(url, headers=headers) if response.status_code != 200: print(f请求失败,状态码:{response.status_code}) return [] soup = BeautifulSoup(response.text, html.parser) comments_list = [] comment_divs = soup.find_all(div, class_=comment-item) for div in comment_divs: user = div.find(a, class_=).get_text(strip=True) comment = div.find(span, class_=short).get_text(strip=True) star_tag = div.find(span, class_=comment-info).find(span, class_=rating) star = star_tag[class][0].replace(allstar, ) if star_tag else 无评分 time_tag = div.find(span, class_=comment-info).find_all(span)[-1] comment_time = time_tag.get_text(strip=True) comments_list.append({ user: user, comment: comment, star: star, time: comment_time }) return comments_list if __name__ == __main__: movie_id = 1292052 # 例如《肖申克的救赎》的豆瓣ID comments = get_douban_comments(movie_id) for idx, c in enumerate(comments, 1): print(f{idx}. 用户:{c[user]} 评分:{c[star]} 时间:{c[time]}\n评论内容:{c[comment]}\n) time.sleep(1) # 稍作等待,防止频繁请求

以上代码中,我们通过传入电影ID,构造带分页参数的URL,从页面解析用户昵称、评论短句、评分标签及发表时间。豆瓣的评分标签是以“allstar”加数字表示,如“allstar50”代表5星,方便后续转换。若无评分,则显示“无评分”。

在实际应用中,用户可能需要获取多页评论,可通过循环分页参数增加start的值,每页最多20条评论。建议设置合适的爬取速度,避免过于频繁造成豆瓣服务器拒绝服务。还可以对数据做进一步清洗和存储,如保存到CSV文件或数据库,方便后续分析。

需要注意的是,豆瓣对于大量数据请求可能存在反爬措施,如验证码或登录限制。如果项目做规模性爬取,建议结合代理IP池、模拟浏览器行为(比如Selenium)或调用豆瓣开放API(如果有授权)等方法。并且请遵守豆瓣的法律条款和用户协议,确保数据爬取行为合法合规。

总结来说,Python凭借丰富的第三方库和简洁的语法,是实现爬取豆瓣电影最新评论的利器。通过requests获取网页内容,BeautifulSoup解析HTML结构,结合合理的请求策略,轻松实现自动采集目标数据。希望本文分享的示例和思路,能帮助更多开发者入门电影评论爬取和数据分析。

最新更新 | RSS订阅 | 百度蜘蛛 | 谷歌地图 | 必应地图 | 360地图 | 搜狗地图 | 神马爬虫

本站所有视频和图片均来自互联网收集而来,版权归原创者所有,本网站只提供web页面服务,并不提供资源存储,也不参与录制

Copyright © 2021 智的影视(www.zidea.cn) All Rights Reserved 皖ICP备2021008140号-1