如何在wget中阻止文件名“index.html?replytocom = xxx”

时间:2010-08-16 12:01:35

标签: wget

我试图删除大量奇怪的文件名,例如index.html?replytocom=653index.html?replytocom=667等。

我使用下面的代码:

wget -k -m -r -q -R gif,png,jpg,jpeg,GIF,PNG,JPG,JPEG,?,= -t 1 http://www.website.com/

并尝试了

wget -k -m -r -q -R gif,png,jpg,jpeg,GIF,PNG,JPG,JPEG,?,=,replytocom -t 1 http://www.website.com/

但没有运气..

1 个答案:

答案 0 :(得分:1)

在这种情况下,无法使用rejlist,因为 documentation for wget说:

另请注意,查询字符串(以问号开头的URL末尾的字符串(`?`)不包含在接受/拒绝规则的文件名中,即使这些字符串实际上会影响所选的名称预期Wget的未来版本将提供允许匹配查询字符串的选项。

因此,您需要使用--reject-regex参数。

wget --reject-regex '(.*)\?(.*)' http://example.com

请注意,每--reject-regex次来电,您只能使用wget一次。也就是说,如果要在多个正则表达式中选择,则必须在单个正则表达式中使用|

wget --reject-regex 'expr1|expr2|…' http://example.com

所以回答你的问题,我猜测解决方案会是这样的:

wget --reject-regex '(.*)replytocom(.*)' (...)