自动化https请求的最简单方法

3
我需要自动化提交大量请求到基于云的数据库接口(Intelex),但没有批量提交某些操作的方式,但只要经过身份验证的用户尝试打开网页链接,就可以提交单个请求。 因此,要使用给定GUID恢复记录,我只需打开页面“https://.../restore/[GUID]”。 网页将加载并显示现在已恢复的记录,但实际上我甚至不需要它完成加载 - 只需请求页面足以使服务器执行该操作。 我预计如果我以太快的速度发送它们,服务器要么会将我踢出,要么会放弃一些请求,但是处理它们的速度与我在新浏览器选项卡中导航和打开链接的速度相同(大约每秒1个)。
什么是提交这些请求到几千个Web地址的最简单方法?
2个回答

0
假设 guid.txt 包含:
[GUID]
[GUID]
[GUID]
:
[GUID]

然后你可以运行:

cat guid.txt | parallel --delay 1s wget https://.../restore/{}

要自动找到最佳的--delay,请使用以下方法:

cat guid.txt |
  parallel --retries 5 --delay 1sauto wget https://.../restore/{}

(需要 GNU Parallel 版本 20210122)。


0

我可以看到几种方法。每一种都非常简单。

  1. 将URL的变量部分存储在文件中。然后使用类似CURL的工具,并循环遍历文件内容,在每次迭代中使用构建的URL调用CURL。如果您使用的是Linux,可以像这样做:在Bash中循环遍历文件内容,对于Windows,请查看此帖子:如何使用Windows批处理文件循环遍历文本文件中的每一行?

  2. 使用JMeter工具(jMeter循环遍历CSV中的所有值)。这甚至可以让您并行查询。


谢谢Alexey!对我来说,安装JMeter看起来像是一个相当大的研究项目,因为我的当前知识水平是:“通常能够从Stack-Exchange上拼凑代码”、“https意味着Web服务神奇地知道我是我……或者什么的”以及“Linux是一些更聪明的人使用的东西”。我想最好的结果就是在我吃午饭的时候得到一个批处理文件,可以打开和关闭Chrome 1000次,就像将您的链接与https://stackoverflow.com/questions/41331970/open-and-close-websites-in-batch结合起来一样。你认为这是一个公正的评估吗? - AnAdverb
这是一个可能的解决方案,但需要更多的资源,因此完成时间更长。这可能会发生,你会从午餐回来,但脚本仍在运行。 - Alexey R.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接