如何发送预建请求
How to send a pre-built request
我想要的:
我正在使用一个网站(我希望保持匿名)购买证券。它非常复杂,据我所知编码在 JavaScript 中。
我想用这个网站做的是 'inject' 从一个单独的过程中购买东西的请求。因此,不必手动搜索我想购买的东西并进入那里并手动填写表格,单击购买并确认 'are you sure you want to place the order?' 弹出窗口我只想发送任何 command/request 正在发送当直接按下确认按钮时发送到服务器。
要特别清楚:我只是不想经历手动麻烦,而只是发送一个嵌入了必要参数的预构建请求。
我当然不想做任何恶意的事情,只是让我的订单输入更快更顺畅。没有必要自动登录或类似的东西。
我知道这没什么好继续的,但我把它扔在那里并问一个问题:可以做到吗?
我真的不知道这些东西在幕后是如何工作的,也许请求以某种方式加密为某种自定义格式,几乎不可能进行逆向工程,或者可能不会。
"Injecting" 可能是错误的术语。大多数人会想到 sql 注入或 javascript 通常是恶意的注入 activity。这似乎不是你想要的。
您正在寻找的是一种自动化工具。有很多可用的工具。尝试 google 搜索 "web automation tool." Selenium http://www.seleniumhq.org/ and PhantomJS http://phantomjs.org/ 很受欢迎。
此外,您可以重新创建实际购买证券的请求。如果您使用 Chrome,您可以打开开发人员工具并在您浏览网站时查看“网络”选项卡上显示的内容。 Firefox 和 Edge 也有类似的工具。当您进行购买时,您将看到实际的网络请求。然后,根据网站的实施方式,您可能只能使用 Postman 等工具复制该请求。
但是,在您执行上述任何操作之前,我建议您先查看您提到的网站的服务条款。他们可能会明确禁止那种 activity.
我想详细说明我的评论和 Michael Ratliff 的回答。
举个例子。
我们得到了一些服务。该服务的管理可以通过网络界面完成。但是只有在手动模式下,没有API(是的,2016年没有API)。所以一开始没有太多的管理工作,我们手动完成。
但是时间过去了,管理工作量呈指数级增长,所以我们遇到了必须将这项工作自动化的情况(仍然没有 API 甚至发布了很少的新版本)。
我们做了什么:
我们在浏览器中打开了我们需要的页面,打开 Inspect Element(在 Firefox 中),打开 Network,填写网络表单,按下我们需要的按钮。在左侧,我们可以看到所有服务请求,按下右侧的任何请求会显示 send/get 的完整描述、所有请求及其参数。然后我们获取这些参数,更改它们并发送回服务器。不过有点像逆向工程。
对于自动化,我们使用了 PHP 和 CURL。目前,几乎所有与服务相关的工作都是自动化的。
是的,我们使用了 Selenium(在 PHP 和 CURL 之前)。你可以打开你需要的表格。按 Rec 在 Web 表单上做一些事情,Selenium 收集这些数据,然后您可以更改 Selenium 脚本中的参数并重新 运行 它。
我想要的: 我正在使用一个网站(我希望保持匿名)购买证券。它非常复杂,据我所知编码在 JavaScript 中。 我想用这个网站做的是 'inject' 从一个单独的过程中购买东西的请求。因此,不必手动搜索我想购买的东西并进入那里并手动填写表格,单击购买并确认 'are you sure you want to place the order?' 弹出窗口我只想发送任何 command/request 正在发送当直接按下确认按钮时发送到服务器。
要特别清楚:我只是不想经历手动麻烦,而只是发送一个嵌入了必要参数的预构建请求。 我当然不想做任何恶意的事情,只是让我的订单输入更快更顺畅。没有必要自动登录或类似的东西。
我知道这没什么好继续的,但我把它扔在那里并问一个问题:可以做到吗? 我真的不知道这些东西在幕后是如何工作的,也许请求以某种方式加密为某种自定义格式,几乎不可能进行逆向工程,或者可能不会。
"Injecting" 可能是错误的术语。大多数人会想到 sql 注入或 javascript 通常是恶意的注入 activity。这似乎不是你想要的。
您正在寻找的是一种自动化工具。有很多可用的工具。尝试 google 搜索 "web automation tool." Selenium http://www.seleniumhq.org/ and PhantomJS http://phantomjs.org/ 很受欢迎。
此外,您可以重新创建实际购买证券的请求。如果您使用 Chrome,您可以打开开发人员工具并在您浏览网站时查看“网络”选项卡上显示的内容。 Firefox 和 Edge 也有类似的工具。当您进行购买时,您将看到实际的网络请求。然后,根据网站的实施方式,您可能只能使用 Postman 等工具复制该请求。
但是,在您执行上述任何操作之前,我建议您先查看您提到的网站的服务条款。他们可能会明确禁止那种 activity.
我想详细说明我的评论和 Michael Ratliff 的回答。
举个例子。
我们得到了一些服务。该服务的管理可以通过网络界面完成。但是只有在手动模式下,没有API(是的,2016年没有API)。所以一开始没有太多的管理工作,我们手动完成。
但是时间过去了,管理工作量呈指数级增长,所以我们遇到了必须将这项工作自动化的情况(仍然没有 API 甚至发布了很少的新版本)。
我们做了什么:
我们在浏览器中打开了我们需要的页面,打开 Inspect Element(在 Firefox 中),打开 Network,填写网络表单,按下我们需要的按钮。在左侧,我们可以看到所有服务请求,按下右侧的任何请求会显示 send/get 的完整描述、所有请求及其参数。然后我们获取这些参数,更改它们并发送回服务器。不过有点像逆向工程。
对于自动化,我们使用了 PHP 和 CURL。目前,几乎所有与服务相关的工作都是自动化的。
是的,我们使用了 Selenium(在 PHP 和 CURL 之前)。你可以打开你需要的表格。按 Rec 在 Web 表单上做一些事情,Selenium 收集这些数据,然后您可以更改 Selenium 脚本中的参数并重新 运行 它。