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

爬虫-电影影评爬取

先上代码

import requests
import timeheaders = {"referer": "http://movie.mtime.com/","user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36"
}
for i in range(1, 6):params = {'tt': "{}".format(int(time.time() * 1000)),'movieId': '251525','pageIndex': i,'pageSize': '20','orderType': '1'}url = "http://front-gateway.mtime.com/library/movie/comment.api"result = requests.get(url, headers=headers, params=params)comments = result.json()['data']['list']for comment in comments:user = comment['nickname']content = comment["content"]print("用户:%s" % user)print("评论:%s" % content)time.sleep(1)

这里面有几个部分需要做下说明:

以哪吒之魔童降世来说,进入此网页,打开开发者模式,点击Network->XHR,因为我们找的是评论,其英文是comment,如下我们找到了。

1.headers,它的来源是哪呢?

点击其头headers,拉到最下面,找到了Referer以及User-Agent,此值直接获取,(上面代码中的user-agent以自己电脑为准)。

2.params中的值。

同样是来源于headers中,有个Request URL,它的值是

http://front-gateway.mtime.com/library/movie/comment.api?tt=1718197021078&movieId=251525&pageIndex=1&pageSize=20&orderType=2

我们知道链接中?后面的参数为查询参数,requests.get() 方法提供了 params 参数,能让我们以字典的形式传递链接的查询参数,那几个字段的意义如下:

movieId :电影在时光网中的ID

pageIndex :评论的第x页

pageSize :每页评论数

orderType :字面意思是排序方式,而我们发现,短影评页的右上方的确是有这个选项的。值为 1 代表的应该就是按最热排序

tt:时间戳

3.result.json()

result我们知道是获取出来的结果,但是.json的意义是什么?我们需要json是什么

json:(JavaScript Object Notation)是一种轻量级的数据交换格式;构建于两种结构:键值对的集合 和 值的有序列表,分别对应python中 字典和列表。其本质是字符串,只是该字符串符合特定的格式要求。

4.time.sleep(1)  此处是为了让爬虫慢一点,防止被封

相关文章:

  • 英语翻译人工翻译优势
  • Ubuntu server 24 (Linux) Zabbix 7.0 LTS 配置mail邮件报警
  • 线程池前置知识
  • Qt第一次作业
  • uniapp怎么实现条形码
  • boot整合solr
  • Python API自动化:提升开发效率的利器
  • 提升营业厅服务质量:DuDuTalk柜台录音设备,台席质检的新选择
  • PostgreSQL:在CASE WHEN语句中使用SELECT语句
  • vs2019 c++20规范 STL 库中头文件 <atomic> 源码注释及探讨几个知识点
  • C#面:abstract 的 method 是否可同时是 static,是否可同时是 native,是否可同时是 synchronized?
  • 树莓派4B_OpenCv学习笔记6:OpenCv识别已知颜色_运用掩膜
  • Vulnhub-DC-8
  • 表面温度测量方法有哪些?常见方法解析
  • salesforce保存记录后,根据条件弹出对话框提示
  • 《Javascript高级程序设计 (第三版)》第五章 引用类型
  • fetch 从初识到应用
  • go append函数以及写入
  • golang 发送GET和POST示例
  • java中具有继承关系的类及其对象初始化顺序
  • leetcode讲解--894. All Possible Full Binary Trees
  • Markdown 语法简单说明
  • mysql innodb 索引使用指南
  • Node项目之评分系统(二)- 数据库设计
  • Redis 中的布隆过滤器
  • Swoft 源码剖析 - 代码自动更新机制
  • Vue2.x学习三:事件处理生命周期钩子
  • Wamp集成环境 添加PHP的新版本
  • 阿里云前端周刊 - 第 26 期
  • 动手做个聊天室,前端工程师百无聊赖的人生
  • 前端面试之CSS3新特性
  • 浅谈Golang中select的用法
  • 使用parted解决大于2T的磁盘分区
  • 微信端页面使用-webkit-box和绝对定位时,元素上移的问题
  • Java总结 - String - 这篇请使劲喷我
  • shell使用lftp连接ftp和sftp,并可以指定私钥
  • ​DB-Engines 11月数据库排名:PostgreSQL坐稳同期涨幅榜冠军宝座
  • ​LeetCode解法汇总1276. 不浪费原料的汉堡制作方案
  • #免费 苹果M系芯片Macbook电脑MacOS使用Bash脚本写入(读写)NTFS硬盘教程
  • (02)Cartographer源码无死角解析-(03) 新数据运行与地图保存、加载地图启动仅定位模式
  • (C++17) optional的使用
  • (附源码)node.js知识分享网站 毕业设计 202038
  • (收藏)Git和Repo扫盲——如何取得Android源代码
  • (一)appium-desktop定位元素原理
  • (原創) 如何使用ISO C++讀寫BMP圖檔? (C/C++) (Image Processing)
  • .NET “底层”异步编程模式——异步编程模型(Asynchronous Programming Model,APM)...
  • .NET Core WebAPI中使用Log4net 日志级别分类并记录到数据库
  • .NET LINQ 通常分 Syntax Query 和Syntax Method
  • .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型
  • .net获取当前url各种属性(文件名、参数、域名 等)的方法
  • .NET微信公众号开发-2.0创建自定义菜单
  • .NET中GET与SET的用法
  • [ C++ ] STL---string类的模拟实现
  • [ 英语 ] 马斯克抱水槽“入主”推特总部中那句 Let that sink in 到底是什么梗?
  • []error LNK2001: unresolved external symbol _m