我有一些关于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个线程。这两者如何成比例?
很抱歉这些问题,但我非常感谢你的帮助。 提前谢谢!
此致
乔乔
答案 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上的视频教程。