我想下载构建网址的网站的内容
http://www.example.com/level1/level2?option1=1&option2=2
在网址中,只有http://www.example.com/level1/level2对每个网页都是唯一的,而且option1和option2的值正在发生变化。实际上,由于这些变量,每个唯一页面都可以有数百种不同的符号。我正在使用wget来获取所有网站的内容。由于这个问题,我已经下载了超过3GB的数据。有没有办法告诉wget忽略URL问号背后的一切?我无法在手册页中找到它。
答案 0 :(得分:14)
您可以使用wget --reject-regex "(.*)\?(.*)" -m -c --content-disposition http://example.com/
指定拒绝特定URL地址的模式,例如
catch()
这将反映网站,但它会忽略带问号的地址 - 对于镜像维基站点非常有用。
答案 1 :(得分:1)
这对您而言无济于事,但对于那些已经下载了所有这些文件的人来说。您可以按以下步骤快速重命名文件以删除问号及其后的所有内容:
rename -v -n 's/[?].*//' *[?]*
上面的命令进行一次试运行,并向您显示如何重命名文件。如果试运行一切正常,请再次运行该命令而不使用-n(nono)开关。
答案 2 :(得分:0)
问题解决了。我注意到我想要下载的网址都是搜索引擎友好的,其中描述是使用短划线形成的:
http://www.example.com/main-topic/whatever-content-in-this-page
所有其他网址都引用了CMS。
我得到了所有的东西wget -r http://www.example.com -A "*-*"
这就是诀窍。感谢您的分享!
答案 3 :(得分:0)
@kenorb使用--reject-regex
的答案是好的。尽管在旧版wget
上,它对我来说不起作用。这是与GNU Wget 1.12一起使用通配符的等效项:
wget --reject "*\?*" -m -c --content-disposition http://example.com/