问题标签 [stormcrawler]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
web-crawler - JSoupParserBolt 是否有一个内置实现来利用 parsefilters.json 文件和与之关联的类?
我正在使用 Storm crawler 中提供的过滤器类研究特定的 XPath 数据提取。我想知道JSoupParserBolt是否利用与过滤器类和文件相关的类,或者我们必须重写过滤器类来提取所需的数据。
此外,我试图了解如何使用crawler_conf.yaml中的indexer.md.filter和indexer.md.mapping条目,但由于文档有限,我不清楚其用途。
谁能帮我吗?
web-crawler - 在流 Stormcrawler 中禁用子域
我们如何在流中禁用注入子域?现在,如果我们注入www.ebay.com
流而不是注入,我们就有子域页面:my.ebay.com
, community.ebay.com
, ...
solr - 使用 StormCrawler 进行重复数据删除
我看到 Stormcrawler 尚不支持文档重复数据删除。这是未来的计划吗?我之所以这么问,是因为我看到可以在状态核心中添加签名元数据,并且可以用于在索引之前删除具有相同签名值的重复项。如果我在正确的方向思考,只是一个想法?
谢谢,
苏曼
apache - StormCrawler 设置
我有几个关于 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 个线程。这两者的比例如何?
很抱歉有这么多问题,但我非常感谢您的帮助。先感谢您!
问候,
乔乔
web-crawler - StormCrawler 的原型拓扑不获取外链
据我了解,基本示例应该能够抓取和获取页面。
我按照http://stormcrawler.net/getting-started/上的示例进行操作,但爬虫似乎只获取了几页,然后什么也不做。
我想爬取http://books.toscrape.com/并运行爬取,但在日志中看到只获取了第一页,而发现了其他一些页面但未获取:
没有更改任何配置文件。包括 crawler-conf.yaml。该标志parser.emitOutlinks
也应该为真,因为这是 crawler-default.yaml 的默认值
在另一个项目中,我还关注了有关弹性搜索的 youtube 教程。在这里,我还遇到了根本没有页面被提取和索引的问题。
爬虫没有获取任何页面的错误可能在哪里?
elasticsearch - Stormcrawler 没有为弹性搜索获取/索引页面
我将 Stormcrawler 与 Elasticsearch示例FETCHED
一起使用,在抓取网页http://books.toscrape.com/时,Kibana 中没有显示任何状态的页面
仍然在控制台上,网页似乎已被获取和解析
此外,Elasticsearch 的索引似乎获得了一些项目,即使这些项目没有标题
我将其扩展com.digitalpebble.stormcrawler.elasticsearch.bolt.IndexerBolt
为还将网页的元数据存储在本地文件中,似乎它根本没有得到任何元组。由于 IndexerBolt 还标记了 url 的状态,因为FETCHED
这可以解释 Kibana 中提到的观察结果。
这种行为有什么解释吗?我已经将爬虫配置恢复为标准,除了 crawler.flux 中的索引螺栓来运行我的课程。
拓扑配置:
重新配置的 IndexerBolt
java - StormCrawler 和 Hortonworks 1.1.0.2.6.4.0-91 之间的 Commons 日志记录版本冲突
我按照http://stormcrawler.net/getting-started/指南生成拓扑的 jar 文件。当我在readme
文件中使用storm命令运行拓扑时,在执行 FetcherBolt 时出现以下错误。我在 Hortonworks 集群中安装了 Storm Storm 1.1.0.2.6.4.0-91。无论 -local 或分布式模式如何,我都会遇到相同的异常。我得到以下异常
java.lang.NoSuchMethodError: org.apache.commons.logging.impl.LogFactoryImpl.handleThrowable(Ljava/lang/Throwable;)V 在 org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactoryImpl.java:568) 在org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:292) 在 org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:269) 在 org.apache.commons.logging。 LogFactory.getLog(LogFactory.java:685) 在 org.apache.http.conn.ssl.AbstractVerifier.(AbstractVerifier.java:61) 在 org.apache.http.conn.ssl.AllowAllHostnameVerifier.(AllowAllHostnameVerifier.java:44)在 org.apache.http.conn.ssl.AllowAllHostnameVerifier.(AllowAllHostnameVerifier.java:46) 在 org.apache.http.conn.ssl.SSLConnectionSocketFactory.(SSLConnectionSocketFactory.java:146) 在 org.apache.http.impl.conn .PoolingHttpClientConnectionManager。getDefaultRegistry(PoolingHttpClientConnectionManager.java:115) at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.(PoolingHttpClientConnectionManager.java:122) at com.digitalpebble.stormcrawler.protocol.httpclient.HttpProtocol.(HttpProtocol.java:76) at java .lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:264) at com.digitalpebble.stormcrawler.protocol.ProtocolFactory.(ProtocolFactory.java:60) at com.digitalpebble.stormcrawler。 bolt.FetcherBolt.prepare(FetcherBolt.java:738) at org.apache.storm.daemon.executor$fn__9635$fn__9648.invoke(executor.clj:794) at org.apache.storm.util$async_loop$fn__557.invoke( util.clj:482) 在 clojure.lang.AFn.run(AFn.java:22) 在 java.lang.Thread.run(Thread.java:748)(PoolingHttpClientConnectionManager.java:122) 在 com.digitalpebble.stormcrawler.protocol.httpclient.HttpProtocol.(HttpProtocol.java:76) 在 java.lang.Class.forName0(Native Method) 在 java.lang.Class.forName(Class. java:264) 在 com.digitalpebble.stormcrawler.protocol.ProtocolFactory.(ProtocolFactory.java:60) 在 com.digitalpebble.stormcrawler.bolt.FetcherBolt.prepare(FetcherBolt.java:738) 在 org.apache.storm.daemon。 executor$fn__9635$fn__9648.invoke(executor.clj:794) at org.apache.storm.util$async_loop$fn__557.invoke(util.clj:482) at clojure.lang.AFn.run(AFn.java:22)在 java.lang.Thread.run(Thread.java:748)(PoolingHttpClientConnectionManager.java:122) 在 com.digitalpebble.stormcrawler.protocol.httpclient.HttpProtocol.(HttpProtocol.java:76) 在 java.lang.Class.forName0(Native Method) 在 java.lang.Class.forName(Class. java:264) 在 com.digitalpebble.stormcrawler.protocol.ProtocolFactory.(ProtocolFactory.java:60) 在 com.digitalpebble.stormcrawler.bolt.FetcherBolt.prepare(FetcherBolt.java:738) 在 org.apache.storm.daemon。 executor$fn__9635$fn__9648.invoke(executor.clj:794) at org.apache.storm.util$async_loop$fn__557.invoke(util.clj:482) at clojure.lang.AFn.run(AFn.java:22)在 java.lang.Thread.run(Thread.java:748)Stormcrawler.protocol.ProtocolFactory.(ProtocolFactory.java:60) at com.digitalpebble.stormcrawler.bolt.FetcherBolt.prepare(FetcherBolt.java:738) at org.apache.storm.daemon.executor$fn__9635$fn__9648.invoke(executor .clj:794) 在 org.apache.storm.util$async_loop$fn__557.invoke(util.clj:482) 在 clojure.lang.AFn.run(AFn.java:22) 在 java.lang.Thread.run(线程.java:748)Stormcrawler.protocol.ProtocolFactory.(ProtocolFactory.java:60) at com.digitalpebble.stormcrawler.bolt.FetcherBolt.prepare(FetcherBolt.java:738) at org.apache.storm.daemon.executor$fn__9635$fn__9648.invoke(executor .clj:794) 在 org.apache.storm.util$async_loop$fn__557.invoke(util.clj:482) 在 clojure.lang.AFn.run(AFn.java:22) 在 java.lang.Thread.run(线程.java:748)
rabbitmq - 将 RabbitMQ 与 Stormcrawler 一起使用
我想将 RabbitMQ 与 StormCrawler 一起使用。我已经看到有一个使用 RabbitMQ 和 Storm 的存储库: https ://github.com/ppat/storm-rabbitmq
您将如何将其用于 StormCrawler?我想使用生产者和消费者。
对于消费者来说,似乎有一些文档。制片人呢?您可以将配置条目放在风暴爬虫配置中,还是我需要更改 RabbitMQProducer 的源代码?
java - StormCrawler 在爬取一个域完成时执行操作
当爬虫完成对一个域的爬取时,我想做一个动作(在我的例子中,将一个元组发送到一个螺栓)。
我看到 StormCrawler 甚至可以在给定的时间间隔后重新访问一个网站。在同时爬取多个域的场景下,在哪个组件中或者如何看到一个域何时完成爬取?
我当前的设置是使用 StormCrawler 与 Elasticsearch 和 Kibana。