0

我是 Wget 的新手。按照在线示例,我正在尝试使用以下命令登录到一个简单的页面:

wget --post-data='entry=85482564&submit3=LOGIN' \ --save-cookies=my-cookies.txt --keep-session-cookies \ https://www.abczyx.com

我收到以下错误:

SYSTEM_WGETRC = c:/progra~1/wget/etc/wgetrc
syswgetrc = C:\Program Files (x86)\GnuWin32/etc/wgetrc
wget: missing URL
Usage: wget [OPTION]... [URL]...

Try `wget --help' for more options.
'submit3' is not recognized as an internal or external command, operable program or batch file.

我猜它不能完全识别&,但我不确定如何修复它。我正在运行 Windows 7 cmd 行。一个附带的问题,为什么使用“\”?我看到了一些带有它的例子,有些没有它。我有问题。

4

4 回答 4

3

经过一番阅读,我发现因为它是 MS DOS,他们没有正确解释特殊字符。在它周围添加引号(“&”)就可以了。

于 2012-10-06T02:17:29.320 回答
1

在 Windows 中,转义符号是插入符号,^而不是反斜杠,\。所以在批处理文件中它应该看起来像'entry=85482564^&submit3=LOGIN'.

于 2014-01-22T00:11:30.297 回答
0

对我来说,有效的是将 & 更改为 %26,如 --post-data 'login=foo%26pass=bar'

此外,如果您要发布电子邮件地址,请务必将 @ 更改为 %40

其他代码: https ://en.wikipedia.org/wiki/Percent-encoding

于 2020-03-12T09:23:23.770 回答
0

是的,wget 的手册中有一个错误(我会说一个非常严重的错误)。在手册中它说:

登录到服务器。

这只能进行一次。wget --save-cookies cookies.txt --post
-data 'user=foo&password=bar'
http://example.com/auth.php

所以你做类似的事情

wget --save-cookies cookies.txt \
--post-data 'user=yourUser12%23125&password=yourPassword12%241' \
http://www.websitelink.com/

由于多种原因,这显然不起作用。首先,您必须删除\符号,因为它们会妨碍您;其次,您必须自己删除换行符,因为当您将其粘贴到命令行工具中时,它将执行它们,就像您在每一行之后按 Enter 一样,这将导致尝试将该命令作为 3 个单独的命令执行:

第一的:

wget --save-cookies cookies.txt \

第二:

--post-data 'user=yourUser12%23125&password=yourPassword12%241' \

第三:

http://www.websitelink.com/

好的,所以您删除了斜线,然后意识到您还必须自己删除换行符,但它仍然不起作用。在这一点上,它是空中的pepehands。那你现在怎么办?不知何故,您必须自动意识到&符号也应该是百分比编码的。所以你转

登录到服务器。

这只能进行一次。wget --save-cookies cookies.txt --post
-data 'user=foo&password=bar'
http://example.com/auth.php

对此:

wget --save-cookies cookies.txt --post-data 'user=yourUser12%23125%26password=yourPassword12%241' http://www.websitelink.com/

它开始工作了!

于 2020-12-06T19:34:22.620 回答