我是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行。一个侧面问题,为什么要使用“\”?我看到了一些例子,有些没有它。我遇到了问题。
答案 0 :(得分:2)
在做了一些阅读之后,我发现因为它是MS DOS,所以它们没有正确解释特殊字符。在它周围添加引号(“&”)就可以了。
答案 1 :(得分:1)
在Windows中,转义符号是插入符^
,而不是反斜杠,\
。因此,在批处理文件中,它应该看起来像'entry=85482564^&submit3=LOGIN'
。
答案 2 :(得分:0)
对我来说,有效的方法是更改&%26 如 --post-data'login = foo%26pass = bar'
如果您要发布电子邮件地址,请确保将@更改为%40
答案 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/
它开始工作!