wget能否抓取MoinMoin wiki页面上传文件?无指定文件名参数咨询
关于用wget抓取MoinMoin wiki上传文件的解决方案
当然可以用wget下载MoinMoin上的上传文件!你遇到的问题其实是因为MoinMoin的附件存储结构比较特殊,默认的--mirror参数没覆盖到这些文件的抓取规则,所以得调整一下参数配置,不用逐个指定文件名也能批量抓。
问题根源
MoinMoin的上传文件一般存在/attach/路径下(或者和对应页面绑定的子路径),但默认的--mirror只会递归抓取页面链接里的常规网页内容,不会自动识别这类附件路径,也不会主动抓取非网页类型的文件,所以才会漏抓那些PDF之类的附件。
无需指定文件名的解决方案
你可以给wget加几个参数,让它针对性地抓取附件:
- 指定附件路径:MoinMoin的附件通常都在
/attach/目录下,用--include-directories=/attach让wget递归抓取这个路径下的所有内容 - 过滤文件类型:用
--accept指定你需要的文件格式(比如pdf、docx、zip等),避免抓不必要的文件 - 结合页面递归:把目标页面(比如你的Logbook页面)作为起始URL,让wget从页面出发,同时跟进附件链接
举个具体的命令例子:
wget --mirror --include-directories=/attach --accept=pdf,docx,zip https://你的MoinMoin站点地址/Logbook/
如果你的wiki需要登录权限才能访问附件,还得加上登录参数:
wget --mirror --include-directories=/attach --accept=pdf,docx,zip --user=你的用户名 --password=你的密码 https://你的MoinMoin站点地址/Logbook/
要是不想明文输密码,可以先登录一次保存cookie,再用--load-cookies cookie.txt加载登录状态,更安全。
补充说明
你提到的Window_Transmission.PDF这类文件,只要在命令里包含了pdf类型,wget就会自动识别页面里的附件链接并下载,完全不用单独指定文件名。如果附件路径不是/attach/,可以先打开页面里的附件链接,看一下URL的前缀是什么,把--include-directories改成对应的路径就行。
内容的提问来源于stack exchange,提问作者user247005
相关产品推荐
相关产品推荐

