我正在编写一个应该模拟的bash脚本:
鉴于这个基本的例子:
<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
,这意味着没有任何更改;它返回主页而不是结果页面。
我如何提交此表单?我忘了什么吗?
NB :目标网址本身包含多种形式(在移动搜索栏,登录表单和其他内容中),其中一些甚至不完全相同,因此,它会合理地说明使用此特定表单的脚本。
答案 0 :(得分:0)
GET
方法解析结果页面的正确方法是:
curl -L '<URL>/search.asp?_search=value'
我需要-L
标志来跟踪重定向,正如@TravisClarke所表示的那样。在这种情况下,<URL>
代表基本URL。 ?
对于有经验的用户来说非常简单;它将一组参数传递给目标URL,而目标URL又应输出所需的结果页面。
由于参数直接通过链接传递,因此不需要-d
或--data
标志,而POST
方法应该需要-d
--cookie
也是如此。