两个目录的递归wget爬网

时间:2013-08-30 02:32:29

标签: html recursion wget web-crawler

我无法让Wget正确关注链接。它获取呈现页面所需的所有文件,甚至包括外部链接,只要它们位于同一个父目录中即可。不幸的是,如果它们位于同一个域但位于不同的目录中,则它不会检索页面中嵌入的外部链接。我只需要在链接上进行一级操作,但由于我想要的链接没有index.html用于目录(即直接链接),这更加复杂。

这是我到目前为止所做的:

wget -r -m -k -K -p -np -nH --cut-dirs=4 -R --adjust-extension -P games/$(date +\%Y-\%m-\%d) http://www.website.org/export/sites/admin/games/types/ http://www.website.org/export/sites/admin/games/types/

这基本上抓取目录并检索所有文件(主要是HTML文件)。它完全完成并获得我需要的一切,除了直接链接到检索内容中的文件外。

假设它检索85393283_poker.html - 并且在该文件中是一个链接:http://www.website.org/export/sites/admin/documents/tables/secondarytables.pdf(注意这是不同的目录)

好吧,它不会检索该文件。对于从第一个查询检索的每个HTML文件,它包含第二个查询的链接。底线是它不会检索第二个链接。

我一直在寻找,但似乎无法弄明白。已尝试过单独的wget个查询但又因为/tables没有html或索引而不会抓取。

感谢任何帮助!感谢

1 个答案:

答案 0 :(得分:0)

原因是--no-parent选项,它阻止当前目录上方/旁边的任何遍历。由于第二个文件位于不同的目录中(而不是第一个的子目录),因此不会对其进行爬网。

您需要做的是将-I和-X或--accept-regex / - reject-regex组合起来进行更具体的抓取。