Python爬虫实战——获取电影影评

Python爬虫实战——获取电影影评

  • 前言
  • 第三方库的安装
  • 示例代码
  • 效果演示
  • 结尾

前言

使用Python爬取指定电影的影评,
注意:本文仅用于学习交流禁止用于盈利或侵权行为。

操作系统:windows10 家庭版
开发环境:Pycharm Conmunity 2022.3
解释器版本:Python3.8
第三方库:requests、bs4

第三方库的安装

需要安装 bs4requests
你可以参考我的以下文章获取些许帮助:

Python第三方库安装——使用vscode、pycharm安装Python第三方库
Python中requests库使用方法详解

示例代码

#code:utf-8
import requests
from bs4 import BeautifulSoup
import time

# 如果想多爬几页可以将16修改为更大的偶数
for i in range(2,16,2):
    url = 'https://movie.douban.com/subject/34841067/comments?start={}0&limit=20&status=P&sort=new_score'.format(i)
    headers = {
        'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.5 Safari/605.1.15'
    }

    # 请求
    r=requests.get(url, headers=headers)

    # 查看状态码
    print(r.status_code)

    # 获取标题
    html = BeautifulSoup(r.text,"html.parser")
    title = html.find("h1").text

    # 获取用户名、评论、评分
    divs = html.find_all("div", class_ = "comment")

    s = {"力荐":"❤❤❤❤❤","推荐":"❤❤❤❤❤","还行":"❤❤❤","较差":"❤❤","很差":"❤"}

    with open("{}.txt".format(title),"w+",encoding="utf-8") as f:
        f.write(str(["用户", "评分", "内容"]))

        for div in divs:
            print("---------------------------------")
            name = div.find("a", class_="").text
            print("用户名:",name)

            content = div.find("span", class_="short").text
            print("用户评论:",content)

            score = None
            for i in range(1,6):
                try:
                    score = s[div.find("span", class_="allstar{}0 rating".format(i))["title"]]
                except:
                    continue

            if score == None:
                score = "用户未评分"

            print("评分:",score)
            print("[+]...{}的评论已爬取".format(name))
            f.write("\n")
            f.write(str([name,score,content]))

        f.close()

效果演示

以下是控制台的输出结果:
在这里插入图片描述
会生成一个以电影名为名字的txt的文件,我们爬取到的数据全部保存在其中,如下:
在这里插入图片描述
在这里插入图片描述

结尾

这个34841067是《你好李焕英》的编码,你可以试着仅仅将这个数字更换成其他电影编码看看会是怎样的结果。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/13918.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Linux嵌入式uboot使用tftp网络启动加载zImage、设备树

文章目录 一、前言二、Linux U-boot 相关命令(1)help 命令(2)printenv 命令(3)setenv 函数(4)saveenv 函数 三、tftp启动linux内核步骤(1)进入u-boot模式&…

vue:生成二维码 qrcode、vue-qr(二维码中间可带logo)

一、方法一 qrcode qrcode - npm 1.1、安装 yarn add qrcode 1.2、页面引入 import QRCode from qrcode; 1.3、方法里边使用 getQRCodeUrl(){ QRCode.toDataURL(hello world,{color: {dark:"#010599FF",light:"#FFBF60FF"}}).then((url) > {// 获…

基于Html+Css的图片展示25

准备项目 项目开发工具 Visual Studio Code 1.44.2 版本: 1.44.2 提交: ff915844119ce9485abfe8aa9076ec76b5300ddd 日期: 2020-04-16T16:36:23.138Z Electron: 7.1.11 Chrome: 78.0.3904.130 Node.js: 12.8.1 V8: 7.8.279.23-electron.0 OS: Windows_NT x64 10.0.19044 项目…

Linux+云服务器

目录 前言 一、Linux介绍 二、Linux 环境搭建 2.1 云服务器 2.2 XShell 终端 三、Linux 常用命令 3.1操作目录的命令 3.1.1 ls 【list的缩写】 双击某个目录 3.1.2 pwd 【print working directory的缩写】打印当前所处地址 3.1.3 cd 【change directory的缩写】切…

yolov5训练自己的目标检测模型

yolov5训练自己的目标检测模型 1.克隆项目并配置环境 1.1克隆项目 进入GitHub下载yolov5源码 点此进入 选择分支v5.0,并下载源码 anaconda激活相应环境 activate pytorch进入项目存放的地址 E: cd yolov5-master1.2 yolov5项目结构 ├── data:主…

Java版本工程管理系统软件源码 自主研发,工程行业适用

Java版工程项目管理系统 Spring CloudSpring BootMybatisVueElementUI前后端分离 功能清单如下: 首页 工作台:待办工作、消息通知、预警信息,点击可进入相应的列表 项目进度图表:选择(总体或单个)项目显示…

Zimbra 远程代码执行漏洞(CVE-2019-9670)漏洞分析

Zimbra 远程代码执行漏洞(CVE-2019-9670)漏洞分析 漏洞简介 Zimbra是著名的开源系统,提供了一套开源协同办公套件包括WebMail,日历,通信录,Web文档管理和创作。一体化地提供了邮件收发、文件共享、协同办公、即时聊天等一系列解决…

集合专题·拔高·壹

文章目录 1 Collection单列集合、Map双列集合1.1 Collection单列集合1.1.1 Collection单列集合及其实现类1.1.1.1 list集合与Array数组1.1.1.1.1 ArrayList1.1.1.1.2 LinekdList1.1.1.1.2 Vector1.1.1.1.2.1 ArrayList、Vector (线程安全)的区别是什么1.…

【elasticsearch部署】

安装elasticsearch 1.部署单点es1.1.创建网络1.2.加载镜像1.3.运行 2.部署kibana2.1.部署2.2.DevTools 3.安装IK分词器3.1.在线安装ik插件(较慢)3.2.离线安装ik插件(推荐)1)查看数据卷目录2)解压缩分词器安…

基于web的电动车租赁管理系统C#+asp.net+sqlserver

具体功能如下:个人信息管理:实现登陆后对个人信息进行修改和查看的功能。 修改登录密码:实现登陆后对个人密码进行修改的功能。 申请租车订单:客户用户登陆后可以申请租车订单。同时可以查看租赁订单信息。 售后评价管理&#xff…

【PR 基础】设置上下黑白边的两种方法

方法1 点击 文件-》新建-》旧版标题 点击确定 点击矩形工具 利用矩形工具框选出上下黑白边 款选完成后点击关闭 将刚创建的字幕拖入轨道 可以修改其持续时长与视频时长保持一致 如果想要修改字幕可以双击来修改 比如可以将颜色改为黑色 方法2 点击号,再选择安全边…

C语言入门篇——函数篇

目录 1、什么是函数 2、函数的分类 2.1库函数 2.2自定义函数 3、函数的参数 3.1实际参数(实参) 3.2形式参数(形参) 4、函数的调用 4.1传值调用 4.2传址调用 5、函数的嵌套调用和链式访问 5.1嵌套调用 5.2链式访问 6、…

【C++】模板

目录 前言 1.函数模板 1.1使用 1.2实现逻辑 1.3实例化 1.4匹配规则 2.类模板 2.1使用 实例化 前言 🎗️照以前的想法,若我们想实现一个交换函数,需要这样写。 void swap(int& x, int& y) {int tmp x;x y;y tmp; }int …

自动驾驶方案及相关对标

华为: 2021年4月18日,在华为智能汽车解决方案BU新品发布会上,华为智能汽车解决方案BU总裁王军表示,华为要持续加大对汽车行业的投入,今年在研发上的投资将达到10亿美元,未来每年保持30%左右增长&#xff0…

[Netty] Mpsc Queue (十七)

JCTools 是适用于 JVM 并发开发的工具,主要提供了一些 JDK 确实的并发数据结构,例如非阻塞 Map、非阻塞 Queue 等。其中非阻塞队列可以分为四种类型,可以根据不同的场景选择使用。 Spsc 单生产者单消费者Mpsc 多生产者单消费者Spmc 单生产者…

【AI生产力工具】Midjourney:为创意人士提供创造性灵感和支持的工具

文章目录 一、Midjourney是什么?二、Midjourney的优势三、Midjourney的应用四、结语 在现代社会,创意和创新成为越来越重要的能力。然而,创意灵感的获取却不是一件容易的事情,这就需要我们使用一些辅助工具来帮助我们发现和实现创…

Docker容器---网络、容器操作

Docker容器---网络、容器操作 一、docker实现原理二、docker网路模式1、Host模式2、container模式3、none模式4、bridge模式 三、自定义网络1、查看网络模式列表2、查看容器信息3、指定分配IP地址4、自定义网络固定IP 四、暴露端口五、容器端口映射1、创建端口映射 六、资源控制…

达梦数据迁移问题罗列

目录 一、前言 二、问题罗列 一、前言 最近小编接触到国产的数据库达梦数据库,然后在用达梦数据迁移工具MySQL迁移至达梦的时候遇到了一系列的问题现在罗列一下在这里。目前关于国产的数据库达梦这些资料比较少,希望能够帮到有需要的同志们&#xff01…

零代码是什么?零代码平台适合谁用?

随着信息技术的发展,软件开发领域也不断发生变革,零代码(No-Code)开发模式越来越受到关注。 零代码到底是什么,能不能用通俗的话来说?这就来给大家讲一讲! 01 零代码为什么出现? 随…

Java基础——缓冲流

(1)缓冲流概述: 缓冲流也称高效流,或者高级流。(字节流可称原始流)作用:缓冲流自带缓冲区,可以提高原始字节流,字符流读写数据的性能。 (2)字节缓…