【发布时间】:2018-01-16 10:48:16
【问题描述】:
我正在尝试使用JWikiDocs 作为一个专注的爬虫,将维基百科页面下载为文本文档。我在运行 Ubuntu 17.10.1 的 VirtualBox 中执行它。
我已经使用
清理和编译了 JWikiDocs$ make clean
和
$ make all
然后根据 README 文件,我在 options.txt 文件中指定种子 URL 和要下载的最大文档数。例如:
totalPages=100
seedURL=http://en.wikipedia.org/wiki/Microsoft
此文件包含在JWikiDocs/data/Microsoft 目录中。
然后我从 Ubuntu 终端使用以下命令执行 JWikiDocs:
$ java -classpath lib/htmlparser/htmlparser.jar:lib/jwikidocs.jar jwikidocs.JWikiDocs -d data/Microsoft
我遇到的问题是只下载了种子页面作为文档。即使我已经指定了 100 个要抓取的文档,它似乎也不会抓取种子页面中包含的 URL,而只是在最后终止。
我尝试了totalPages 参数的各种值,以及将Option.java 中maxDepth 的值从4 的默认值更改。我还尝试将睡眠时间从 500 更改为 2000 ms。
我还注意到,在执行$ make test 时,测试目录的结果也是如此;实际上只更新了第一个文档。测试目录在其各自的文件夹中确实包含 100 个输出文档,但这些文件与可下载的 tar 文件打包在一起,并且在测试期间不会更新。我尝试删除它们并再次运行$ make test,但它们没有被复制。
有谁知道如何解决这个问题,以便 JWikiDocs 抓取指定种子页面中的 URL?我已经联系了出版商,但我认为 SO 可能会更快地提供帮助。
编辑:
我已包含检索日志,以便所有爬取选项都可见。如您所见,它处理种子 URL,然后终止。我怀疑问题出在底层 Java 的某个地方。
RetrievalLog.txt
根目录:../data/Microsoft
日志文件:../data/Microsoft/retrievallog.txt
数据目录:../data/Microsoft/data
检索最大深度:4
检索到的页面总数:100
事务之间的时间休眠:500 毫秒
错误事务后的睡眠时间:5000 毫秒
seedURL=http://en.wikipedia.org/wiki/Microsoft
输出编码:UTF-8
包含超链接的文本:true
当前队列大小:0
下载处理网址:http://en.wikipedia.org/wiki/Microsoft ...
下载和处理完成!保存 docID:1
【问题讨论】:
-
我不确定这是否应该有 Java 标签。如果需要,请随时编辑和添加。
标签: java web-crawler wikipedia