Wget缺少URL和

时间:2012-10-04 20:48:42

标签: wget

我是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 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

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

答案 2 :(得分:0)

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

如果您要发布电子邮件地址,请确保将@更改为%40

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

答案 3 :(得分: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/

出于种种原因,这显然无效。首先,您必须删除\符号,因为它们会妨碍您的操作;其次,您必须删除换行符,因为将其粘贴到命令行工具后,它将像按回车键一样执行它们在每一行之后,这将导致尝试将该命令作为3个单独的命令执行:

第一:

wget --save-cookies cookies.txt \

第二:

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

第三:

http://www.websitelink.com/

好吧,因此您删除了斜杠,然后意识到自己也必须删除换行符,但这仍然行不通。在这一点上,空中的人。那你现在怎么办?您必须以某种方式自动地意识到&符号也应进行百分比编码。所以你转

登录到服务器。

只能执行一次。 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/

它开始工作!