0

我有几个关于 StormCrawler 的问题:http ://stormcrawler.net/

1.拒绝Shops的爬取:

我尝试在 default-regex-filters.txt: -(shop)中使用这个正则表达式。这是正确的方法吗?因为 Stormcrawler 仍然会抓取在其 URL 中某处有“商店”的网站。

2、“maxDepth”参数有什么作用?

我需要限制每个网站的抓取深度的可能性,例如只抓取距离 /home 站点“单击/级别”的页面。这是该用例的正确参数吗?如果没有,这个选项在哪里?

3. Elasticsearch:发现和获取

我会理解发现应该总是大于获取。但是我遇到了获取>发现的情况。是否有解释或发现和获取的确切含义是什么?

4.配置入口:parse.emitOutlinks

我真的不明白它的含义。有简单的解释吗?因为当我将它设置为false时,爬虫只爬取了 URL 的第一页,我不知道为什么。

5. “fetcherthreads”和“threads per Queue”的区别?

我们目前使用 200 个 fetcherthreads 和每个队列 20 个线程。这两者的比例如何?

很抱歉有这么多问题,但我非常感谢您的帮助。先感谢您!

问候,

乔乔

4

1 回答 1

1

1.拒绝Shops的爬取

-.*(shop)应该可以工作。您尝试的表达式在 shop 之前不允许使用任何字符

2、“maxDepth”参数有什么作用?

是的,这正是它的作用。它跟踪种子 URL 的深度并过滤超出您设置的阈值的任何内容

3. Elasticsearch:发现和获取

请参阅为什么我在状态和索引中有不同的文档计数?

为什么不看看教程和 WIKI?

4.配置入口:parse.emitOutlinks

顾名思义,此参数可防止解析器螺栓向状态流添加外链。当您不想扩展爬网并仅获取种子时,这很有用。

5. “fetcherthreads”和“threads per Queue”的区别?

Fetcher 线程很简单,就是 FetcherBolt 中用于获取 URL 的线程数。FetcherBolt 根据它们的主机名(或域或 IP)将传入的 URL 放入内部队列,并且 fetcher 线程从这些队列中轮询。默认情况下,StormCrawler 每个内部队列只允许一个 fetcher 线程,这样爬取是礼貌的,不会过于频繁地向目标主机发送请求。

如果您还没有这样做,我建议您查看Youtube上的视频教程。

于 2018-03-23T16:15:11.383 回答