小白用Python抓取豆瓣高评分喜剧电影

2023-11-18

目的:抓取豆瓣高评分喜剧电影

导入所需的库

import requests#进行模拟浏览器进行发送请求
import json#导入JSON类型的库

不会导入库的话,请参考我的上一篇文章,上面有提及。小白如何抓取网页

进行确定URL和浏览器的伪装

headers = {
        'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36'
    }
    url = 'https://movie.douban.com/j/chart/top_list?type=24&interval_id=100%3A90&action=&start+=&limit+='
    #大家仔细看这个URL有什么特点,在豆瓣排行榜的喜剧电影专区,打开开发者工具,不会打开请参考上一篇文章。
    #在network中的RXH中发现请求的URL地址如下:

仔细观察URL的变化
仔细观察URL的变化
可发现其中变化的为后面的数字。所以为了抓取网站的全部内容,需要进行URL进行修改。仔细观看我所修改的URL地址

url = 'https://movie.douban.com/j/chart/top_list?type=24&interval_id=100%3A90&action=&start+=&limit+='
#添加一个加号+,进行修改,可以说是比较简单的方法。

进行字典的构建

	number = input('选择从第几个喜剧电影开始:(第0部为排名第一):')#进行选择输入的电影起点
    number1 = input('选择选取多少个电影:')#进行选择的电影的个数
    word = input('想要保存的名称:')#进行选择电影的保存名称
    param = {
        'type': '24',
        'interval_id': '100:90',
        'action':'',
        'start': number,
        'limit': number1,
    }

在此处查找字典的格式

进行对应的浏览器请求

	response = requests.get(url = url,params = param,headers = headers)
    list_data = response.json()#输出的list_data为一个列表需要进行循环取出

进行循环取出内容

    for movie in list_data:
        name = movie['title']
        score = movie['score']
        rank = movie['rank']
        print(rank, score, name)

进行永久性保存

	fileName = word + '.json'
    fp = open(fileName, 'w', encoding='utf-8')#确保编码方式为utg-8
    json.dump(list_data, fp=fp, ensure_ascii=False)#JSON文件的保存格式

最终成果

在控制台的显示
在本地的保存

完整代码如下:

import requests
import json
if __name__ == "__main__":
    headers = {
        'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36'
    }
    url = 'https://movie.douban.com/j/chart/top_list?type=24&interval_id=100%3A90&action=&start+=&limit+='
    number = input('选择从第几个喜剧电影开始:(第0部为排名第一):')
    number1 = input('选择选取多少个电影:')
    word = input('想要保存的名称:')
    param = {
        'type': '24',
        'interval_id': '100:90',
        'action':'',
        'start': number,
        'limit': number1,
    }
    response = requests.get(url = url,params = param,headers = headers)
    list_data = response.json()
    print('已将信息保存为相应名称,以下为相应电影信息:')
    for movie in list_data:
        name = movie['title']
        score = movie['score']
        rank = movie['rank']
        print(rank, score, name)
    fileName = word + '.json'
    fp = open(fileName, 'w', encoding='utf-8')
    json.dump(list_data, fp=fp, ensure_ascii=False)

重难点

在于对于URL的修改,可以增加为“+”来修改,此处为我的一点小技巧,嘿嘿。
对于字典的构建,可以用开发者工具进行查看。

若文章中有什么不懂的地方欢迎留言讨论,谢谢。
谢谢,如有帮助,希望收藏点赞

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

小白用Python抓取豆瓣高评分喜剧电影 的相关文章

  • Twisted 的 Deferred 和 JavaScript 中的 Promise 一样吗?

    我开始在一个需要异步编程的项目中使用 Twisted 并且文档非常好 所以我的问题是 Twisted 中的 Deferred 与 Javascript 中的 Promise 相同吗 如果不是 有什么区别 你的问题的答案是Yes and No
  • 如何在python 3.7中生成条形码

    我正在使用 python 3 7 为了生成条形码 我尝试使用安装 pyBarcode 库pip install pyBarcode 但它显示以下错误 找不到满足 pyBarcode 要求的版本 来自版本 找不到 pyBarcode 的匹配分
  • opencv水印周围的轮廓

    我想在图像中的水印周围画一个框 我已经提取了水印并找到了轮廓 但是 不会在水印周围绘制轮廓 轮廓是在我的整个图像上绘制的 请帮我提供正确的代码 轮廓坐标的输出为 array 0 0 0 634 450 634 450 0 dtype int
  • 检查 Python 中的可迭代对象中的所有元素的谓词是否计算为 true

    我很确定有一个常见的习语 但我无法通过谷歌搜索找到它 这是我想做的 用Java Applies the predicate to all elements of the iterable and returns true if all ev
  • 如何在Python中同时运行两只乌龟?

    我试图让两只乌龟一起移动 而不是一只接着另一只移动 例如 a turtle Turtle b turtle Turtle a forward 100 b forward 100 但这只能让他们一前一后地移动 有没有办法让它们同时移动 有没有
  • 在 Django OAuth Toolkit 中安全创建新应用程序

    如何将 IsAdminUser 权限添加到 Django OAuth Toolkit 中的 o applications 视图 REST FRAMEWORK DEFAULT PERMISSION CLASSES rest framework
  • 如果在等待“read -s”时中断,在子进程中运行 bash 会破坏 tty 的标准输出吗?

    正如 Bakuriu 在评论中指出的那样 这基本上与BASH 输入期间按 Ctrl C 会中断当前终端 https stackoverflow com questions 31808863 bash ctrlc during input b
  • Django send_mail SMTPSenderRefused 530 与 gmail

    一段时间以来 我一直在尝试使用 Django 从我正在开发的网站接收电子邮件 现在 我还没有部署它 并且我正在使用Django开发服务器 我不知道这是否会影响它 这是我的 settings py 配置 EMAIL BACKEND djang
  • 使用 Pandas 计算 delta 列

    我有一个数据框 如下所示 Name Variable Field A 2 3 412 A 2 9 861 A 3 5 1703 B 3 5 1731 A 4 0 2609 B 4 0 2539 A 4 6 2821 B 4 6 2779 A
  • Jython 和 SAX 解析器:允许的实体不超过 64000 个?

    我做了一个简单的测试xml saxJython 中的解析器在处理大型 XML 文件 800 MB 时遇到以下错误 Traceback most recent call last File src project xmltools py li
  • ANTLR 获取并拆分词法分析器内容

    首先 对我的英语感到抱歉 我还在学习 我为我的框架编写 Python 模块 用于解析 CSS 文件 我尝试了 regex ply python 词法分析器和解析器 但我发现自己在 ANTLR 中 第一次尝试 我需要解析 CSS 文件中的注释
  • 使用“默认”环境变量启动新的子进程

    我正在编写一个构建脚本来解析依赖的共享库 及其共享库等 这些共享库在正常情况下是不存在的PATH环境变量 为了使构建过程正常工作 让编译器找到这些库 PATH已更改为包含这些库的目录 构建过程是这样的 加载器脚本 更改 PATH gt 基于
  • 返回表示每组内最大值的索引的一系列数字位置

    考虑一下这个系列 np random seed 3 1415 s pd Series np random rand 100 pd MultiIndex from product list ABDCE list abcde One Two T
  • 动态过滤 pandas 数据框

    我正在尝试使用三列的阈值来过滤 pandas 数据框 import pandas as pd df pd DataFrame A 6 2 10 5 3 B 2 5 3 2 6 C 5 2 1 8 2 df df loc df A gt 0
  • Elasticsearch 通过搜索返回拼音标记

    我用语音分析插件 https www elastic co guide en elasticsearch plugins current analysis phonetic html由于语音转换 从弹性搜索中进行一些字符串匹配 我的问题是
  • 如何与其他用户一起使用 pyenv?

    如何与其他用户一起使用 pyenv 例如 如果我在用户 test 的环境中安装了 pyenv 则当我以 test 身份登录时可以使用 pyenv 但是 当我以其他用户 例如 root 身份登录时如何使用 pyenv 即使你这么做了 我也会s
  • 将上下文管理器的动态可迭代链接到单个 with 语句

    我有一堆想要链接的上下文管理器 第一眼看上去 contextlib nested看起来是一个合适的解决方案 但是 此方法在文档中被标记为已弃用 该文档还指出最新的with声明直接允许这样做 自 2 7 版起已弃用 with 语句现在支持此
  • 查找总和为给定数字的值组合的函数

    这个帖子查找提供的 Sum 值的组合 https stackoverflow com a 20194023 1561176呈现函数subsets with sum 它在数组中查找总和等于给定值的值的组合 但由于这个帖子已经有6年多了 我发这
  • 如何为不同操作系统/Python 版本编译 Python C/C++ 扩展?

    我注意到一些成熟的Python库已经为大多数架构 Win32 Win amd64 MacOS 和Python版本提供了预编译版本 针对不同环境交叉编译扩展的标准方法是什么 葡萄酒 虚拟机 众包 我们使用虚拟机和Hudson http hud
  • Apache Beam Pipeline 写表后查询表

    我有一个 Apache Beam Dataflow 管道 它将结果写入 BigQuery 表 然后我想查询该表以获取管道的单独部分 但是 我似乎无法弄清楚如何正确设置此管道依赖性 我编写的新表 然后想要查询 与一个单独的表连接以进行某些过滤

随机推荐

  • leetcode分类刷题:哈希表(Hash Table)(一、简单的两数之和)

    1 当需要快速判断某元素是否出现在序列中时 就要用到哈希表了 2 本文针对的总结题型为简单的两数之和问题 这种题目的难易程度取决于求解的目标 如果需要返回的是答案的索引 个数 那么就相对简单一些 如果需要返回答案的值构成的二元组 三元组之类
  • 通过网页版堡垒机访问服务器失败,堡垒机远程连接服务器被拒绝

    堡垒机远程连接服务器被拒绝 内容精选 换一换 云堡垒机配置了FTP SFTP远程备份 报请检查服务器密码或网络连接情况错误 不能启动远程备份 选择备份具体某一天日志 提示备份正在执行 但远程服务器未接收到该备份文件 原因一 云堡垒机配置的F
  • Ajax中的XMLHttpRequest对象详解

    原文地址 http www cnblogs com shunyao8210 archive 2008 11 24 1339718 html XMLHttpRequest对象是Ajax技术的核心 在Internet Explorer 5中 X
  • vlfeat 特征检测

    https blog csdn net wangxinsheng0901 article details 79676081 https github com dougalsutherland vlfeat ctypes
  • 【电脑配置】1、Chrome 设置深色模式

    1 在 Chrome 页面地址输入 chrome flags enable force dark 2 将 Dark Mode 设置为 Enabled 3 点击 Relaunch
  • Copy 数据到ppt 中保持对齐

    Copy 一组数据到PPT里 但是有可能在PPT里无法对齐 可以先拷贝到xls里 各个数据项会对齐到单元格 再拷贝到PPT后 这里即可对齐
  • Apifox生成接口文档

    一 http接口 点击添加接口 编辑接口相关信息 点击保存 点击修改文档 点击智能识别 请求示例智能识别 编辑请求参数信息 返回响应智能识别 可添加多个 成功 异常A 异常B等 编辑响应参数信息 添加响应示例 参照返回响应添加 点击保存 接
  • python书写格式_python并的写法

    广告关闭 腾讯云11 11云上盛惠 精选热门产品助力上云 云服务器首年88元起 买的越多返的越多 最高返5000元 最近倒腾python 希望能坚持下去吧发现了个叫codecademy的网站 还不错http www codecademy c
  • 服务器内部操作系统,服务器内部操作系统

    服务器内部操作系统 内容精选 换一换 Atlas 800 训练服务器 型号 9000 安装上架 服务器基础参数配置 安装操作系统等操作请参见 Atlas 800 训练服务器 用户指南 型号9000 风冷 或 Atlas 800 训练服务器
  • Java——string[] 和List的区别

    一直对string 和List
  • JavaWeb之综合小项目

    案例需求 使用Java程序操作数据库 并把结果显示在jsp页面上 这里只做查询操作 增删改操作类似如此 使用工具 maven idea tomcat MySQL数据库 使用技术 javabean servlet jsp 准备阶段 第一步 使
  • 求全排列的数学方法(洛谷1088 火星人noip2004普及组第4题)

    人类终于登上了火星的土地并且见到了神秘的火星人 人类和火星人都无法理解对方的语言 但是我们的科学家发明了一种用数字交流的方法 这种交流方法是这样的 首先 火星人把一个非常大的数字告诉人类科学家 科学家破解这个数字的含义后 再把一个很小的数字
  • 实战wxPython:056 - GDI基本元素之颜色Colour

    GDI系统中的设备上下文包含一些基本元素 例如颜色 画刷 画笔或字体等等 wx Colour定义设备上下文中对象显示的颜色 wx Brush是一个用于填充区域的绘图工具 它用于绘制形状的背景 它有颜色和风格 wx Pen用于绘制形状的轮廓
  • 查询sql数据库中表占用的空间大小

    1 SQL统计数据 大量事务操作后可能不准 exec sp spaceused 表名 2 准确的表空间大小 但可能会花些统计时间 exec sp spaceused 表名 true 3 数据库大小查询 exec sp spaceused 4
  • 关于shiro doGetAuthorizationInfo授权方法和doGetAuthenticationInfo登陆认证方法的执行时机

    1 默认情况下不关闭shiro session 登陆时生成JESSIONID 执行doGetAuthorizationInfo的时机 1 subject hasRole admin 或 subject isPermitted admin 自
  • error: ‘FixedArray’ {aka ‘class ceres::internal::FixedArray<double, 3>’} has no member named ‘data’

    在使用g2o或者Ceres遇到以下问题 error FixedArray aka class ceres internal FixedArray
  • private static final Long serialVersionUID= 1L详解

    我们知道在对数据进行传输时 需要将其进行序列化 在Java中实现序列化的方式也很简单 可以直接通过实现Serializable接口 但是我们经常也会看到下面接这一行代码 private static final Long serialVer
  • R语言基础图形元素——坐标轴和网格线

    R语言基础图形元素 坐标轴和网格线 简介 1 坐标轴 2 网格线 参考书籍 简介 坐标轴为图中元素数值大小提供了参照 绘图时 时常需要实现坐标轴的个性化绘制 可以通过axis 函数实现 网格线是图形的一种辅助线 可以实现图中元素更加精确把控
  • R语言作图:坐标轴设置

    R语言作图 坐标轴设置 偷闲阁 2018 02 04 20 51 24 209654 收藏 359 分类专栏 R语言 可视化 文章标签 R 坐标轴 刻度 可视化 版权声明 本文为博主原创文章 遵循 C
  • 小白用Python抓取豆瓣高评分喜剧电影

    目的 抓取豆瓣高评分喜剧电影 导入所需的库 import requests 进行模拟浏览器进行发送请求 import json 导入JSON类型的库 不会导入库的话 请参考我的上一篇文章 上面有提及 小白如何抓取网页 进行确定URL和浏览器