wget递归到第二个底部级别,不再前进。如果我指定最底层的HTML文件作为源,它会解析它并进一步分析。我认为这可能是因为从HTML文档链接出来的PDF文件位于服务器上的不同根文件路径。我需要它来检索这个层次结构中的所有PDF文件,因为我将把它们放在一起推广,作为提高抑郁症意识的活动的一部分。
我使用的是基于linux-gnu构建的GNU Wget 1.19.4。
我尝试过--exclude、--exclude-directory、-l2、-l10、--continue和许多其他开关。我需要使用--include命令或wget抓取整个站点。如果我使用-np,它不会“向上”进入/docs
这段代码获得了HTML文件,但不遵循“最底层”HTML文件中的链接。
wget --mirror --include docs/default-source/research-project-files --include about-us/research-projects/research-projects/ https://www.beyondblue.org.au/about-us/research-projects/research-projects/
当我手动指定HTML文件时,这段代码将获得我想要的PDF文件。
wget --mirror --include docs/default-source/research-project-files --include about-us/research-projects/research-projects https://www.beyondblue.org.au/about-us/research-projects/research-projects/online-forums-user-research
我想让它访问这个分支中的所有超文本标记语言文件,取出其中的所有PDF链接,并从/docs检索所有的PDF文件
https://www.beyondblue.org.au/about-us/research-projects/research-projects/online-forums-user-research
这是其中一份PDF文件。/docs目录没有列表。
https://www.beyondblue.org.au/docs/default-source/research-project-files/online-forums-2015-report.pdf?sfvrsn=3d00adea_2
我能让wget做的最好的事情就是遍历站点,并将HTML文件放到这个级别:
https://www.beyondblue.org.au/about-us/research-projects/research-projects/online-forums-user-research
https://www.beyondblue.org.au/about-us/research-projects/research-projects/networks-of-advocacy-and-influence-peer-mentors-in-beyond-blue-s-mental-health-forums
...
150 of them
这看起来像是深度限制设置或路径遍历限制之类的。我怀疑这很容易被发现。再次感谢!
发布于 2019-06-24 09:11:16
好吧,看起来wget可能是广度优先的。这意味着在递归到页面之前获取目录中的所有内容。我不确定这一点,但我让下面的代码运行,它似乎获得了所有的叶HTML文件,但在获得所有文件后,又递归到它们中。
wget -r --verbose --include /docs/default-source/research-project-files/,/about-us/research-projects/research-projects/ https://www.beyondblue.org.au/about-us/research-projects/research-projects/
当然,运行它并在它似乎停在底部HTML层而没有得到PDF时停止它是太早了。
https://stackoverflow.com/questions/56696571
复制相似问题