【问题标题】:Nutch 1.10 won't crawl subdirectories on my siteNutch 1.10 不会抓取我网站上的子目录
【发布时间】:2015-10-29 15:20:05
【问题描述】:

我是 Nutch 和 Solr 的新手,所以我可能只是配置不正确,但我在任何 conf 文件中都找不到此设置。

我正在一个相对较小的站点上测试 Nutch,它会爬取站点根目录中的任何页面,但不会爬取子目录中的任何页面。因此,当我查看 Solr (5.3.1) 中的核心并进行搜索时,我可以找到一个页面 www.somesite.com/somepage.php,但没有一个带有像 www.somesite.com/somedir/somepage.php 这样的 url 的页面。

我正在使用以下命令运行爬取脚本:

sudo -E bin/crawl -i -D solr.server.url=http://localhost:8983/solr/TestCrawlCore urls/ TestCrawl/ 5

这应该会进行 5 次迭代,但它只运行一次并报告没有更多 URL 可获取并退出。控制台或 hadoop 日志中没有错误。

结果:

Injecting seed URLs
/opt/apache-nutch-1.10/bin/nutch inject TestCrawl//crawldb urls/
Injector: starting at 2015-10-29 09:51:55
Injector: crawlDb: TestCrawl/crawldb
Injector: urlDir: urls
Injector: Converting injected urls to crawl db entries.
Injector: Total number of urls rejected by filters: 0
Injector: Total number of urls after normalization: 1
Injector: Merging injected urls into crawl db.
Injector: overwrite: false
Injector: update: false
Injector: URLs merged: 1
Injector: Total new urls injected: 0
Injector: finished at 2015-10-29 09:51:58, elapsed: 00:00:02
Thu Oct 29 09:51:58 CDT 2015 : Iteration 1 of 5
Generating a new segment
/opt/apache-nutch-1.10/bin/nutch generate -D mapred.reduce.tasks=2 -D mapred.child.java.opts=-Xmx1000m -D mapred.reduce.tasks.speculative.execution=false -D mapred.map.tasks.speculative.execution=false -D mapred.compress.map.output=true TestCrawl//crawldb TestCrawl//segments -topN 50000 -numFetchers 1 -noFilter
Generator: starting at 2015-10-29 09:51:58
Generator: Selecting best-scoring urls due for fetch.
Generator: filtering: false
Generator: normalizing: true
Generator: topN: 50000
Generator: 0 records selected for fetching, exiting ...
Generate returned 1 (no new segments created)
Escaping loop: no more URLs to fetch now

种子.txt

http://www.somesite.com

(我也尝试添加尾随“/”,但这并没有改变任何东西。)

我在 regex-urlfilter.txt 中尝试了以下所有方法,但似乎没有一个与其他方法有任何不同。不过,我对这些过滤器了解甚少。

+^http://([a-z0-9\]*\.)*www.somesite.com/
+^http://([a-z0-9\-A-Z]*\.)*www.somesite.com/
+^http://([a-z0-9\-A-Z]*\.)*www.somesite.com/([a-z0-9\-A-Z]*\/)*
+^http://([a-z0-9\]*\.)*www.somesite.com/([a-z0-9\]*\/)*

我已经广泛浏览了 hadoop 日志,只是为了确保它们在之前的运行中没有被爬取,我认为这可能是 solr 中的索引问题,但看起来它们只是从未被爬取过并且是被忽略了。

有人可以在这里为我指出正确的方向来解决这个问题吗?我没有想法和谷歌。

【问题讨论】:

    标签: regex solr nutch


    【解决方案1】:

    您的网站有 robots.txt 文件吗?因此,它可能会限制它可以抓取的链接。将 Nutch 日志记录更改为 Debug,它可能会给您一个更好的主意。

    【讨论】:

    • 就是这样。 robots.txt 中有一个不允许。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2012-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多