当前位置: 首页 > news >正文

【python】爬取豆瓣影评保存到Excel文件中【附源码】

欢迎来到英杰社区icon-default.png?t=N7T8https://bbs.csdn.net/topics/617804998

 【往期相关文章】

爬取豆瓣电影排行榜Top250存储到Excel文件中

爬取豆瓣电影排行榜TOP250存储到CSV文件中

爬取知乎热榜Top50保存到Excel文件中

爬取百度热搜排行榜Top50+可视化

爬取斗鱼直播照片保存到本地目录

爬取酷狗音乐Top500排行榜

一、效果图:

        以获取电影《肖申克的救赎》的评论为例,写一个爬取豆瓣影评保存到Excel文件中的爬虫程序

  

二、 准备工作

(1)、导入必要的模块:

       代码首先导入了需要使用的模块:requests、lxml和csv。

import requests
from lxml import etree
import csv

        如果出现模块报错

c124a1693bfc457ba1f2909ee9d299fc.png

        进入控制台输入:建议使用国内镜像源

pip install 模块名称 -i https://mirrors.aliyun.com/pypi/simple

         我大致罗列了以下几种国内镜像源:

清华大学
https://pypi.tuna.tsinghua.edu.cn/simple阿里云
https://mirrors.aliyun.com/pypi/simple/豆瓣
https://pypi.douban.com/simple/ 百度云
https://mirror.baidu.com/pypi/simple/中科大
https://pypi.mirrors.ustc.edu.cn/simple/华为云
https://mirrors.huaweicloud.com/repository/pypi/simple/腾讯云
https://mirrors.cloud.tencent.com/pypi/simple/

三、代码详情

import requests
from bs4 import BeautifulSoup
from openpyxl import Workbook

首先,我们导入了三个必要的Python模块:requests、BeautifulSoup和openpyxl。requests用于发送HTTP请求,BeautifulSoup用于解析HTML页面,openpyxl用于生成Excel文件并将影评数据写入到Excel文件中。
 

def get_reviews(movie_id):url = f'https://movie.douban.com/subject/{movie_id}/comments?status=P'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'}response = requests.get(url, headers=headers)soup = BeautifulSoup(response.text, 'html.parser')reviews = soup.find_all('span', class_='short')return [review.get_text() for review in reviews]

        定义一个名为`get_reviews()`的函数,它接受一个参数movie_id,该参数表示电影在豆瓣网站上的唯一标识符。该函数使用f-string构建了影评页面的URL,并设置了请求头`headers`来伪装成浏览器访问方式。然后使用requests库发送GET请求获取页面内容。接着使用BeautifulSoup库解析HTML页面,并使用CSS选择器定位到影评所在的元素。最后,将影评内容提取出来并返回一个包含影评文本的列表。

        

def save_to_excel(reviews):workbook = Workbook()sheet = workbook.activesheet['A1'] = '影评'for i, review in enumerate(reviews, start=2):sheet[f'A{i}'] = reviewworkbook.save('reviews.xlsx')

        定义一个名为`save_to_excel()`的函数,它接受一个参数`reviews`,表示要保存的影评列表。函数使用openpyxl库创建一个新的Excel工作簿,并获取工作簿的活动工作表。然后,将影评列表中的每个影评逐行写入Excel工作表的列A中。最后,使用save()方法将工作簿保存为名为"reviews.xlsx"的Excel文件。

        

if __name__ == '__main__':movie_id = '1292052'  # 肖申克的救赎的电影IDreviews = get_reviews(movie_id)save_to_excel(reviews)print('影评已保存到reviews.xlsx文件中。')

        主程序代码,首先指定了要获取影评的电影ID(在豆瓣电影网址中可以找到)。然后,调用`get_reviews()`函数获取影评列表,再将该列表传递给`save_to_excel()`函数进行保存。最后,打印提示信息,表示影评已成功保存到Excel文件中。

部分代码:

import requests
from bs4 import BeautifulSoup
from openpyxl import Workbookdef get_reviews(movie_id):url = f'https://movie.douban.com/subject/{movie_id}/comments?status=P'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'}response = requests.get(url, headers=headers)soup = BeautifulSoup(response.text, 'html.parser')reviews = soup.find_all('span', class_='short')return [review.get_text() for review in reviews]

完整代码:

        资料获取,更多粉丝福利,关注下方公众号获取,直接搜索“英杰代码编程”

        回复"python影评",“豆瓣影评”,“爬取豆瓣影评” 均可获取完整代码

相关文章:

  • [git] windows系统安装git教程和配置
  • 基础前端知识第一期:DIV 标签
  • arcgis实现截图/截屏功能
  • FastDFS分布式文件存储
  • 牛刀小试 - C++ 推箱子小游戏
  • Pandas ------ 向 Excel 文件中写入含有合并表头的数据
  • P4学习(六)实验三:a Control Plane using P4Runtime
  • Go 虚拟环境管理工具 gvm 原理介绍与使用指南
  • Jellyfin影音服务本地部署并结合内网穿透实现公网访问本地资源
  • 雁行致远 vivo 2023年登顶国产手机第一
  • 视频尺寸魔方:分层遮掩3D扩散模型在视频尺寸延展的应用
  • docker 安装redis
  • day02 有序数组平方、长度最小的子数组、螺旋矩阵II
  • PHP 经纬度相关计算 坐标点之间的距离
  • C++对象模型(一)
  • 2019年如何成为全栈工程师?
  • ES6之路之模块详解
  • JavaScript设计模式之工厂模式
  • Java多态
  • node-sass 安装卡在 node scripts/install.js 解决办法
  • OSS Web直传 (文件图片)
  • Python学习笔记 字符串拼接
  • Spark in action on Kubernetes - Playground搭建与架构浅析
  • vue的全局变量和全局拦截请求器
  • 阿里云容器服务区块链解决方案全新升级 支持Hyperledger Fabric v1.1
  • 开源SQL-on-Hadoop系统一览
  • 如何学习JavaEE,项目又该如何做?
  • 扫描识别控件Dynamic Web TWAIN v12.2发布,改进SSL证书
  • 数据仓库的几种建模方法
  • 学习使用ExpressJS 4.0中的新Router
  • mysql面试题分组并合并列
  • 进程与线程(三)——进程/线程间通信
  • #### go map 底层结构 ####
  • #100天计划# 2013年9月29日
  • #pragma pack(1)
  • #数学建模# 线性规划问题的Matlab求解
  • (C语言)共用体union的用法举例
  • (Redis使用系列) Springboot 实现Redis消息的订阅与分布 四
  • (二十四)Flask之flask-session组件
  • (数据结构)顺序表的定义
  • (算法)求1到1亿间的质数或素数
  • (推荐)叮当——中文语音对话机器人
  • (原创)Stanford Machine Learning (by Andrew NG) --- (week 9) Anomaly DetectionRecommender Systems...
  • (原創) 如何刪除Windows Live Writer留在本機的文章? (Web) (Windows Live Writer)
  • (源码版)2024美国大学生数学建模E题财产保险的可持续模型详解思路+具体代码季节性时序预测SARIMA天气预测建模
  • (转)Scala的“=”符号简介
  • (转)淘淘商城系列——使用Spring来管理Redis单机版和集群版
  • ****Linux下Mysql的安装和配置
  • ***检测工具之RKHunter AIDE
  • ... 是什么 ?... 有什么用处?
  • .bat批处理(一):@echo off
  • .NET 5种线程安全集合
  • .NET Core IdentityServer4实战-开篇介绍与规划
  • .net core使用RPC方式进行高效的HTTP服务访问
  • .NET delegate 委托 、 Event 事件