我正在尝试将数据提交到工作表格。我怀疑我的幼稚方法不起作用,因为页面中的“技术”会干扰它。基本上,网页(对不起,我不能在这里链接到它,它不公开)有
<form action="login.php" method="get" name="LogIn" class="form-signin">
然后像几个输入
<input type="text" class="form-control" id="docIdent" name="docIdent" placeholder="@" required>
所以我正在尝试以下 cURL 命令:
curl -d "docIdent=WHATEVER" -d "type=WHATEVER" -d "comment=" URL
似乎需要这三条数据的地方是通过以下方式获得的: 1. 下载 .html。2. 将表单方法从“post”更改为“get”并在浏览器中打开。3. 填写表单并提交(当然会出现“找不到页面”错误,但新 URL 包含所有数据,包括空的第三个字段)。
好吧,它不起作用(我返回相同的登录页面,我可以检查在我尝试的时候没有登录)。我对这些东西不太了解,但我怀疑它可能是页面中没有的其他代码:有
<script src="dist/js/bootstrap.min.js"></script>
<script src="dist/js/jquery-3.4.1.min.js"></script>
<script src='js/fns.js'></script>
当然还有表单打开中的“login.php”。从许多其他帖子来看,我的语法似乎是正确的;是否有希望自动登录(我将放入 cron 中的 bash 脚本类型,就像我正在尝试的单线一样)?谢谢。
好吧,最后我找到了以下解决方案:使用我的浏览器(Firefox,Web Developer Tools)捕获了请求。它看起来像这样:
... 加上 cookie 信息,我删除了这些信息,因为我想看看其余的(每次都不会改变)是否足够。它奏效了。非常感谢 grawity 的帮助支持。
您可以使用 Firefox Web-Tools 捕获每个 HTTP 请求(GET 或 POST 表单):
Web-Tools -> Network -> 发送表单 -> 表单 URL 的上下文菜单(右键单击表单脚本)-> 复制 => 复制为 cURL 地址
更多信息:https ://everything.curl.dev/usingcurl/copyas