bash - cURL - 提交表单未按预期工作

标签 bash forms shell http curl

我正在编写一个应该模拟的 bash 脚本:

  1. 在搜索栏中输入内容。
  2. 提交其内容。
  3. 获取结果页面。

给定这个基本示例:

<input name="search"  type="TEXT">
<input name="submit" value="SUBMIT" type="SUBMIT" align="center">

我会使用 curl -s -d "search=value%&submit=SUBMIT" <URL> > export.html提交此表格并将结果写入 export.html .

给定下一个形式:

<form action="/search.asp" method="GET" name="mmssearch">
    <div class="search-group">
        <input class="search-input" type="text" value="" placeholder="Enter search value here..." name="_search" autocomplete="off">
        <input id="form-submit" class="search-submit" type="submit" value="">
    </div>
</form>

我会使用 curl -s -d "_search=value" <URL> > export.html , 但是,表单提交 输出相同的 html进入export.html和搜索之前一样,这意味着什么都没有改变;它返回主页而不是结果页面。

我将如何提交此表单?我是不是忘记了什么?

注意:目标 URL 本身包含多种形式(包括移动搜索栏、登录表单和其他形式),其中一些即使不能说完全相同也非常相似,因此,告诉使用此特定表单的脚本。

最佳答案

我不小心用错了链接。为了通过 GET 解析结果页面,对我有用的正确方法方法是:

curl -L '<URL>/search.asp?_search=value'

我需要 -L标记以遵循重定向,正如@TravisClarke 所幸声明的那样。 <URL>在这种情况下代表基本 URL。 ?对于有经验的用户来说非常简单;它将一组参数传递给目标 URL,而目标 URL 又应该输出所需的结果页面。

不需要 -d--data标志作为参数直接通过链接传递,而不是 POST需要 -d 的方法有时 --cookie

关于bash - cURL - 提交表单未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46479478/

相关文章:

bash - 如何在我的 git 提交消息中提交代码块

php - 查询 SQL 表以根据用户输入返回同一行的值

linux - 打印所有行直到匹配给定模式的最后一行的简洁方法

shell - 如何查找最近 30 分钟内登录的用户 UBUNTU 16.04

bash - 测试一个变量是否是只读的

bash - 如何在 bash 脚本中有条件地添加额外参数?

python - 升级后pip坏了

javascript - window.history.back() 返回两页;

jquery - 为什么我的 jquery 输入掩码不起作用?

bash - 如何设置以毫秒为单位的创建日期和时间?