我想使用下载此网页获得在 Windows 7 上:
http://www.att.com/shop/wireless/devices/smartphones.deviceListView.xhr.flowtype-NEW.deviceGroupType-Cellphone.paymentType-postpaid.packageType-undefined.html?commitmentTerm=24&taxoStyle=SMARTPHONES&showMoreListSize=1000
我正在使用此命令来执行此操作:
wget -E -H -k -K -p -e robots=off -P /Downloads/AT&T_2013-01-29/ http://www.att.com/shop/wireless/devices/smartphones.deviceListView.xhr.flowtype-NEW.deviceGroupType-Cellphone.paymentType-postpaid.packageType-undefined.html?commitmentTerm=24&taxoStyle=SMARTPHONES&showMoreListSize=1000
我收到“taxostyle 未定义”、“commitmentterm 未定义”或“可识别方法错误”。
答案1
您的 URL 中有两个与号 ( &
) 和一个问号。
我不确定你的 Windows shell 如何处理这个问题。这可能取决于你正在使用什么。(Cmd.exe?电源外壳,汉密尔顿C壳层对于 Windows,赛格威/猛击?)
无论如何,其中许多都会尝试解析这些字符,最终 Wget 会得到与预期不同的结果。您要么需要转义这些字符(具体方法取决于 shell),要么使用"
标记。
如果我
wget -E -H -k -K -p -e robots=off "http://www.att.com/shop/wireless/devices/smartphones.deviceListView.xhr.flowtype-NEW.deviceGroupType-Cellphone.paymentType-postpaid.packageType-undefined.html?commitmentTerm=24&taxoStyle=SMARTPHONES&showMoreListSize=1000"
在 Bash 3 shell 中使用北达科他州(请注意下载 URL 周围添加的引号)那么该命令似乎确实有效。(它下载了三个目录,2.ecom.attccc.com、3.ecom.attccc.com 和www.att.com)
另外,您可以将 URL 原样放入文件中(一行一个),并将附加-i FILE
参数传递给 wget,而不是 URL 本身。
检查命令真正传递给 Wget 的内容的另一种情况是echo
,像这样echo HERE_IS_URL
,如果输出是可以接受的,您可以echo
用替换wget
或用 将其转发| wget -i-
。