如何使用 wget 下载不以 .html 结尾的网络链接?

如何使用 wget 下载不以 .html 结尾的网络链接?

我想使用下载此网页获得在 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-

相关内容