我想下载能源和气候变化部所有超过 500 英镑的政府支出。这些是 .xls 和 .xlsx 文件,每月生成一次。它们存储在以下位置:
https://www.gov.uk/government/uploads/system/uploads/attachment_data/file/209425/20130627_April_2013_PUS_.xls
其中文件后面的数字是唯一的,文件名没有任何命名一致性。这些文件来自单独的月度页面,其形式如下:
https://www.gov.uk/government/publications/departmental-spend-over-500-april-2013
而索引页又链接到:
https://www.gov.uk/government/collections/departmental-spend-over-500
该命令有效:
wget -r --force-html -e robots=off -A xls,xlsx,"" -l 2
https://www.gov.uk/government/collections/departmental-spend-over-500
但除了 .xls 和 .xlsx 文件外,我还获得了 .gov.uk 网站的完整目录(从我开始的位置到两个链接的深度),除了 .xls 文件外,它还下载了约 100MB 的文本/html 文件,这有点太多了。所以我的问题是:
我怎样才能使 wget 仅从上述目录中获取源代码,或者排除那些我不想要的目录?
我尝试过显而易见的 -I 和 -X、-D 等命令,但无济于事。注意:我必须在 -A 开关中包含“”以及 xls 文件,否则它会忽略链接的 html 文件...
任何建议都非常感谢!顺便说一下,这是在 Mac 上。
答案1
哈!终于解决了。在包含中,您必须包含所有目录的完整路径 - 但不包括 URL:
wget -r -A xls,xlsx,"" -l 2 -I /government/uploads/system/uploads/attachment_data/file/,/government/publications/,/government/collections/departmental-spend-over-500 https://www.gov.uk/government/collections/departmental-spend-over-500
不明显 - 至少对我来说不是...
(在代码框中向右滚动即可查看全部内容)
编辑:实际上更好 - 我在这里将其分开:
wget -r -A xls,xlsx,"" -l 2
-I /government/uploads/system/uploads/attachment_data/file/,
/government/publications/,
/government/collections/departmental-spend-over-500
https://www.gov.uk/government/collections/departmental-spend-over-500
第 1 行:递归,包括 xls 和 xlsx 以及没有扩展名的文件(- 在本例中为 html 文件...)并从第 5 行指定的位置执行两级
第 2-4 行:从顶部 URL 中包含这些路径/目录(即排除其他所有内容)
第 5 行:从哪里开始