Python之JavaScript逆向系列——3、Params

简介: Python之JavaScript逆向系列——3、Params

Python之JavaScript逆向系列——3、Params



前言

大家好,本系列文章主要为大家提供的价值方向是网络信息获取,自动化的提取、收集、下载和记录互联网上的信息,加之自身分析,可以让价值最大化。整个内容中不会涉及到过为敏感的内容。

在这个AI+云计算+大数据时代,我们眼睛所看到的百分之九十的数据都是通过页面呈现出现的,不论是PC端、网页端还是移动端,数据渲染还是基于HTML+JavaScript进行的,而大多数的数据都是通过request请求后台API接口动态渲染的。而想成功的请求成功互联网上的开放/公开接口,必须知道它的【URL】、【Headers】、【Params】、【Body】等数据是如何生成的。我们需要了解浏览器开发者工具的功能,入门JS逆向,入门后还需要掌握例如如何【反编译js混淆】等内容,为了避免封本机IP,还需要对每次访问的IP进行代理,当我们拥有了JS逆向的能力后,根据JS所返回的动态请求参数信息便可以进行Python的具体信息获取操作,需要的知识点非常的多,故而本系列文章理论+实践会达到上百篇的文章,这篇文章是总篇,为了方便大家来直接查找所有知识点,建议之间关注收藏本篇,期望能给大家带来更高的价值。

环境准备

系统环境:win11

开发工具:PyCharm: the Python IDE for Professional Developers by JetBrains

IP代理:品易HTTP - 代理IP日更400万 - 为企业提供HTTP代理IP定制服务

api工具:Eolink - 一体化API在线管理平台_API接口管理_接口自动化测试

数据库:MySQL5.7.32——阿里云RDS数据库

主要python库:requests、PyExecJS、parsel

正文

Params是参数,之前的文章中说到传参,也讲到了【RESTful API】对应的GET、POST、PUT、DELETE请求方式。我们在实际的请求过程中主要使用【GET、POST】请求,GET可以直接通过?+参数的方式传递,POST需要单独写成DATA来传递。

在Python中,'Params’通常指的是参数或参数列表。它通常用于函数定义中,用于指定函数可以接受哪些输入(参数)以及这些参数的类型。这些参数可以是任何类型的数据,例如数字、字符串、列表、字典等。当你在调用一个函数时,你需要提供正确的参数,否则将会引发错误。此外,'Params’还可以指代某种模型或算法的参数,如神经网络中的权重和偏差等。这些参数在训练模型时需要进行调整,以优化模型的性能。总的来说,'Params’在Python中是一个非常通用的概念,用于描述函数、模型或算法的输入或配置。

GET请求示例

在Python中,使用GET方法传递数据通常是在使用HTTP请求时进行的。GET请求通常用于从服务器检索数据,而不是向服务器发送数据。然而,如果你想在Python中使用GET方法传递数据,你可以使用urllib库。以下是一个简单的示例:

import urllib.request
# 定义要传递的数据
data = {
    'key1': 'value1',
    'key2': 'value2',
    # 你可以添加更多的键值对
}
# 将数据转换为字节串
data_bytes = urllib.parse.urlencode(data).encode()
# 创建URL
url = 'http://example.com/api?{}'.format(data_bytes)
# 使用urllib库发送GET请求
response = urllib.request.urlopen(url)
# 打印响应内容
print(response.read().decode())

这个示例将创建一个GET请求,并传递一些数据到指定的URL。在这个例子中,我们使用了urllib.parse.urlencode函数将数据转换为字节串,这是GET请求需要的格式。然后我们使用urllib.request.urlopen发送请求并获取响应。最后,我们打印出响应的内容。

请注意,这个示例假设你正在使用一个支持GET请求的服务器。有些服务器可能只接受POST或PUT等其他类型的请求,并且可能不支持GET请求中包含数据。在这种情况下,你可能需要使用不同的方法来传递数据。

POST请求示例

在Python中,你可以使用requests库来发送POST请求并传递数据。以下是一个简单的示例:

import requests
# 这是你想要发送的数据
data = {
    'username': 'test',
    'password': 'test',
}
# 创建一个POST请求
response = requests.post('http://example.com/api', data=data)
# 打印响应结果
print(response.text)

在这个例子中,我们首先导入了requests库。然后,我们创建了一个字典,其中包含我们要发送的数据。接下来,我们使用requests.post方法发送POST请求,并传递数据字典作为参数。最后,我们打印了响应的文本内容。

注意:这个例子中的URL(‘http://example.com/api’)应该替换为你实际想要发送POST请求的URL。同时,你的数据(在这个例子中是一个字典)应该根据你的实际需求进行修改。

如果你需要发送更复杂的数据(例如,包含文件或其他类型的数据),你可能需要使用json参数来将数据编码为JSON格式,或者使用files参数来上传文件。具体取决于你的需求和服务器如何处理这些数据。

相关文章
|
2月前
|
JavaScript 前端开发 Python
用python执行js代码:PyExecJS库
文章讲述了如何使用PyExecJS库在Python环境中执行JavaScript代码,并提供了安装指南和示例代码。
109 1
用python执行js代码:PyExecJS库
|
1月前
|
前端开发 JavaScript API
JavaScript逆向爬取实战——使用Python实现列表页内容爬取(二)
JavaScript逆向爬取实战——使用Python实现列表页内容爬取(二)
|
1月前
|
数据采集 JavaScript 前端开发
JavaScript逆向爬虫——使用Python模拟执行JavaScript
JavaScript逆向爬虫——使用Python模拟执行JavaScript
|
1月前
|
前端开发 JavaScript API
JavaScript逆向爬取实战——使用Python实现列表页内容爬取(一)
JavaScript逆向爬取实战——使用Python实现列表页内容爬取(一)
|
2月前
|
JavaScript 前端开发 Python
python执行js代码
本文档详细介绍如何安装Node.js环境及PyExecJS库,并提供示例代码展示其功能。首先,通过指定链接安装Node.js,安装完毕后可在命令行中输入`node --version`来验证安装是否成功。接着,使用`pip install PyExecJS`安装PyExecJS库,该库允许Python程序执行JavaScript代码。文档还提供了多个示例代码,展示了如何在Python环境中执行和编译JavaScript代码,并可以选择特定的JavaScript运行时环境,如Node.js或JScript。最后,通过具体案例展示了PyExecJS的功能与使用方法。
33 3
|
1月前
|
数据采集 JavaScript 前端开发
如何使用Python爬虫处理JavaScript动态加载的内容?
如何使用Python爬虫处理JavaScript动态加载的内容?
|
3月前
|
Web App开发 JavaScript 前端开发
使用Python调用JavaScript进行网页自动化操作
使用Python调用JavaScript进行网页自动化操作
|
3月前
|
Web App开发 JavaScript 前端开发
探索Node.js后端开发之旅深入浅出Python装饰器
【8月更文挑战第29天】在数字化时代,掌握一门后端编程语言变得尤为重要。Node.js作为一种基于JavaScript的服务端平台,因其高性能、轻量级的特性而广受欢迎。本文将引导读者了解Node.js的基本概念、核心模块以及如何利用它来构建一个简易的Web服务器。通过本文的学习,你将获得使用Node.js进行后端开发的初步技能,并理解其在现代Web开发中的应用价值。
|
4月前
|
机器学习/深度学习 数据采集 前端开发
网络爬虫开发:JavaScript与Python特性的小差异
我们以前写JavaScript的代码时,在遇到了发送请求时,都是需要去await的。 但是为什么Python代码不需要这样做呢? 这就是因为JavaScript是异步的,Python是同步的。 JavaScript就需要使用关键词await将异步代码块变为同步代码。
|
4月前
|
SQL 数据库 Python
【Python】已完美解决:(executemany()方法字符串参数问题)more placeholders in sql than params available
【Python】已完美解决:(executemany()方法字符串参数问题)more placeholders in sql than params available
73 1