我只想要文件夹结构,但我无法弄清楚如何使用wget.相反,我使用这个:
wget -R pdf,css,gif,txt,png -np -r http://example.com
哪个应该拒绝-R之后的所有文件,但在我看来wget仍然下载文件,然后删除它.
有没有更好的方法来获取文件夹结构?
发送TTP请求,等待响应... 200 OK长度:136796(134K)[application/x-download]保存到:"example.com/file.pdf"
100%[=====================================>]在0.2秒内136,796 853K/s
2012-10-03 03:51:41(853 KB/s) - "example.com/file.pdf"已保存[136796/136796]
删除example.com/file.pdf,因为它应该被拒绝.
如果有人想知道这是一个客户,他们可以告诉我结构,但这是一个麻烦,因为他们的IT人员必须这样做,所以我想自己得到它.
Sha*_*hin 24
这似乎wget是设计工作的方式.执行递归下载时,仍然会下载与拒绝列表匹配的非叶子文件,以便可以为链接收集它们,然后将其删除.
从代码内注释(recur.c):
无论是指定--delete-后,还是我们这个加载,否则拒绝(例如,通过-R)HTML文件只是这样我们就可以收获了超链接 -在这两种情况下,删除本地文件.
我们已经有一个运行在这过去的项目中,我们不得不镜像一个认证的站点,并wget保持击中注销偶数页时,它是为了拒绝那些网址.我们找不到任何改变行为的选项wget.
我们最终得到的解决方案是下载,破解和构建我们自己的版本wget.可能有一个更优雅的方法,但我们使用的快速修复是在download_child_p()例程的末尾添加以下规则(修改以符合您的要求):
/* Extra rules */
if (match_tail(url, ".pdf", 0)) goto out;
if (match_tail(url, ".css", 0)) goto out;
if (match_tail(url, ".gif", 0)) goto out;
if (match_tail(url, ".txt", 0)) goto out;
if (match_tail(url, ".png", 0)) goto out;
/* --- end extra rules --- */
/* The URL has passed all the tests. It can be placed in the
download queue. */
DEBUGP (("Decided to load it.\n"));
return 1;
out:
DEBUGP (("Decided NOT to load it.\n"));
return 0;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3736 次 |
| 最近记录: |