Python之JavaScript逆向系列——接口JSON信息获取与操作
Python之JavaScript逆向系列——Python之JavaScript逆向系列——接口JSON信息获取与操作
目录
Python之JavaScript逆向系列——Python之JavaScript逆向系列——接口JSON信息获取与操作
前言
大家好,本系列文章主要为大家提供的价值方向是网络信息获取,自动化的提取、收集、下载和记录互联网上的信息,加之自身分析,可以让价值最大化。整个内容中不会涉及到过为敏感的内容。
在这个AI+云计算+大数据时代,我们眼睛所看到的百分之九十的数据都是通过页面呈现出现的,不论是PC端、网页端还是移动端,数据渲染还是基于HTML+JavaScript进行的,而大多数的数据都是通过request请求后台API接口动态渲染的。而想成功的请求成功互联网上的开放/公开接口,必须知道它的【URL】、【Headers】、【Params】、【Body】等数据是如何生成的。我们需要了解浏览器开发者工具的功能,入门JS逆向,入门后还需要掌握例如如何【反编译js混淆】等内容,为了避免封本机IP,还需要对每次访问的IP进行代理,当我们拥有了JS逆向的能力后,根据JS所返回的动态请求参数信息便可以进行Python的具体信息获取操作,需要的知识点非常的多,故而本系列文章理论+实践会达到上百篇的文章,这篇文章是总篇,为了方便大家来直接查找所有知识点,建议之间关注收藏本篇,期望能给大家带来更高的价值。
环境准备
系统环境:win11
开发工具:
IP代理:
api工具:
数据库:MySQL5.7.32——阿里云RDS数据库
主要python库:requests、PyExecJS、parsel
正文
想要具体的搞会操作,那么JS操作就是必须要掌握的内容,很多的数据都是通过json返回到主页进行动态加载的。
我们用上一篇文章举例:
在获取文章列表的时候我们获取的就是JSON格式的数据,那么我们就在在理开始分析了。
json格式
JSON,全称JavaScript Object Notation,是一种轻量级的数据交换格式。它采用完全独立于语言的文本格式,简洁、易读且便于机器解析和生成。JSON基于JavaScript Programming Language, Standard ECMA-262 3rd Edition-December 1999 (PDF)标准,易于人类阅读和编写,同时也易于机器解析和生成,并具有自己的数据类型。这些数据类型包括对象(Object)、数组(Array)、数字(Number)、字符串(String)、布尔值(Boolean)、null七种类型。此外,由于JSON语义与JavaScript完全兼容,在Web开发中常被用作数据交换的格式。它常常被用作API返回结果或者用于本地数据存储等场景。值得注意的是,虽然JSON的名字中包含"Object",但它并非是一种编程语言,而是一种数据格式。JSON本身并没有提供任何处理逻辑或方法,而是提供了一种方式来描述数据结构。在实际使用中,JSON通常会被转换为其他格式(如XML、CSV等)以适应特定的需求。
json格式示例
以下是一个简单的中文的JSON格式示例:
这是一个包含姓名、年龄、性别、职业、技能、项目经验和教育背景等信息的JSON对象。每个字段都用双引号括起来的字符串表示,并且字段和值之间使用冒号分隔,多个字段之间使用大括号 {} 隔开。JSON是一种轻量级的数据交换格式,易于人类阅读和编写,同时也易于机器解析和生成。
POST请求访问API示例
请求的api地址可以看到,访问的方法是:POST,我们需要单独的加上参数与请求头就能访问了。
基础POST请求
如果我们不给参数和请求头,可以看到访问了,但是没有任何返回,因为接口不知道你要什么信息。
添加参数的POST请求
在荷载中能看到具体的请求参数名称与参数值。
请求信息:
我们已经获取了对应的整个大json信息,但是这个json是字符串的,需要我们进行json格式化了。
json格式化
我们使用json的库来loads我们的json字符串。
当我们输出后看到所有的双引号都变成了单引号。
现在我们就能使用json的获取格式来获取数据了。
获取json格式具体数据
这里可以看到具体我们需求的参数了:
python的json库loads与dumps的区别
Python的json库中的dumps和loads函数都是用于处理JSON数据的,但是它们的功能和用途有一些不同。
dumps函数(也称为JSON.dumps)是用于将Python对象转换为JSON格式的字符串。这个函数接收一个Python对象作为输入,并返回一个字符串,该字符串表示将该对象转换为JSON格式后的结果。
例如,如果你有一个Python字典,你可以使用dumps函数将其转换为JSON格式的字符串:
另一方面,loads函数(也称为JSON.loads)是用于将JSON格式的字符串转换回Python对象。这个函数接收一个JSON格式的字符串作为输入,并返回一个Python对象,该对象表示从JSON字符串转换回Python对象的结果。
例如,如果你有一个表示Python字典的JSON格式字符串,你可以使用loads函数将其转换回一个字典:
总结一下,dumps用于将Python对象转换为JSON格式的字符串,而loads用于将JSON格式的字符串转换回Python对象。这两种功能对于处理JSON数据来说是非常常见的。
- 点赞
- 收藏
- 关注作者
评论(0)