StormCrawler设置

时间:2018-03-23 15:47:48

标签: apache web-crawler apache-storm stormcrawler

我有一些关于StormCrawler的问题:http://stormcrawler.net/

1。拒绝商店的爬行:

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

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

我需要限制每个网站的抓取深度,例如:只需抓取距离/ home网站“一键/水平”的页面。这是该用例的正确参数吗?如果没有选择的地方?

第3。 Elasticsearch:发现&取得

我会理解发现的应该总是大于取得的。但我得到的案例取自>发现。是否有解释或者发现了什么以及取得什么意味着什么呢?

4。配置条目: parse.emitOutlinks

我真的不明白它的含义。它有一个简单的解释吗?因为当我将其设置为 false 时,抓取工具只抓取了网址的第一页,我不知道原因。

5。 “fetcherthreads”和“每个队列的线程”之间的区别?

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

很抱歉这些问题,但我非常感谢你的帮助。 提前谢谢!

此致

乔乔

1 个答案:

答案 0 :(得分:1)

<强> 1。拒绝商店的抓取

- 。*(商店)应该有用。您尝试的表达式不允许在购物前使用任何字符

<强> 2。什么是&#34; maxDepth&#34;参数吗?

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

第3。 Elasticsearch:发现&amp;取

请参阅Why do I have different document counts in status and index?

为什么不看一下教程和WIKI?

<强> 4。配置条目:parse.emitOutlinks

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

<强> 5。 &#34; fetcherthreads&#34;之间的区别和每个队列的&#34;线程&#34;?

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

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