elasticsearch 如何从elasticsearch中筛选stromcrawler数据,elasticsearch,web-crawler,apache-storm,stormcrawler,elasticsearch,Web Crawler,Apache Storm,Stormcrawler" /> elasticsearch 如何从elasticsearch中筛选stromcrawler数据,elasticsearch,web-crawler,apache-storm,stormcrawler,elasticsearch,Web Crawler,Apache Storm,Stormcrawler" />

elasticsearch 如何从elasticsearch中筛选stromcrawler数据

elasticsearch 如何从elasticsearch中筛选stromcrawler数据,elasticsearch,web-crawler,apache-storm,stormcrawler,elasticsearch,Web Crawler,Apache Storm,Stormcrawler,我正在使用ApacheStorm 1.2.3和elasticsearch 7.5.0。我已经成功地从3k新闻网站中提取数据,并在Grafana和kibana上可视化。我在内容上收到了很多垃圾(像广告),我附上了很多内容。谁能建议我如何过滤它们。我正在考虑将ES中的html内容提供给一些python包。我是否走上了正确的道路?如果没有,请向我推荐好的解决方案。 提前谢谢 这是crawler-conf.yaml文件 config: 工作人员:1名 topology.message.timeout.

我正在使用ApacheStorm 1.2.3和elasticsearch 7.5.0。我已经成功地从3k新闻网站中提取数据,并在Grafana和kibana上可视化。我在内容上收到了很多垃圾(像广告),我附上了很多内容。谁能建议我如何过滤它们。我正在考虑将ES中的html内容提供给一些python包。我是否走上了正确的道路?如果没有,请向我推荐好的解决方案。 提前谢谢

这是crawler-conf.yaml文件

config:
工作人员:1名
topology.message.timeout.secs:300
topology.max.spout.pending:100
topology.debug:false
fetcher.threads.number:50
#覆盖工人的JVM参数
topology.worker.childopts:“-Xmx2g-Djava.net.preferIPv4Stack=true”
#使用焊剂时必须使用
topology.kryo.register:
-com.digitalpebble.stormclawler.Metadata
#要传输到大纲视图的元数据
#由获取程序用于重定向、sitemapparser等。。。
#这些文件也会被保存到父文档中(见下文)
#元数据传输:
#-customMetadataName
#列出要保存到存储的元数据
#这些不会传输到大纲视图
metadata.persist:
-_redito
-错误源
-伊西特玛
-isFeed
http.agent.name:“Nitesh Singh”
http.agent.version:“1.0”
http.agent.description:“使用StormCrawler Elasticsearch原型1.16构建”
http.agent.url:“http://someorganization.com/"
http.agent.email:“nite0sh@gmail.com"
#返回的HTTP响应正文的最大字节数。
#在这种情况下,获取的页面将被修剪为65KB
#设置-1以禁用限制。
http.content.limit:65536
#FetcherBolt队列转储=>要激活的注释
#如果工作计算机上存在具有相应端口号的文件
#FetcherBolt将其内部队列的内容记录到日志中
#fetcherbolt.queue.debug.filepath:“/tmp/fetcher dump-{port}”
parsefilters.config.file:“parsefilters.json”
urlfilters.config.file:“urlfilters.json”
#每天重新访问页面(值以分钟为单位)
#将其设置为-1以从不重新蚀刻页面
fetchInterval.default:1440
#在2小时后重新访问出现获取错误的页面(值以分钟为单位)
#将其设置为-1以从不重新蚀刻页面
fetchInterval.fetch.error:120
fetchInterval.error:-1
#JSoupParserBolt的文本提取
textextractor.include.pattern:
-DIV[id=“maincontent”]
-DIV[itemprop=“articleBody”]
-文章
textextractor.exclude.tags:
-风格
-剧本
#文档元数据中包含键/值时使用的自定义提取间隔
#并且已成功获取(以分钟为单位的值)
#fetchInterval.FETCH\u错误。isFeed=true:30
#fetchInterval.isFeed=true:10
#扩展AbstractIndexer的类的配置
#index.md.filter:“someKey=aValue”
indexer.url.fieldname:“url”
index.text.fieldname:“内容”
indexer.canonical.name:“canonical”
indexer.md.mapping:
-parse.title=title
-parse.keywords=关键字
-parse.description=描述
-域=域
#指标消费者:
topology.metrics.consumer.register:
-类:“org.apache.storm.metric.LoggingMetricsConsumer”

parallelism.hint:1
您是否配置了文本提取器?e、 g

  # text extraction for JSoupParserBolt
  textextractor.include.pattern:
   - DIV[id="maincontent"]
   - DIV[itemprop="articleBody"]
   - ARTICLE

  textextractor.exclude.tags:
   - STYLE
   - SCRIPT
这会将文本限制为特定元素(如果找到)和/或删除排除中指定的元素

大多数新闻网站都会使用某种形式的标签来标记主要内容

您给出的示例是一个可以为其添加模式的元素


ParseFilter中可以嵌入各种样板文件删除库,但它们的精度差别很大。

您配置了文本提取器吗?e、 g

  # text extraction for JSoupParserBolt
  textextractor.include.pattern:
   - DIV[id="maincontent"]
   - DIV[itemprop="articleBody"]
   - ARTICLE

  textextractor.exclude.tags:
   - STYLE
   - SCRIPT
这会将文本限制为特定元素(如果找到)和/或删除排除中指定的元素

大多数新闻网站都会使用某种形式的标签来标记主要内容

您给出的示例是一个可以为其添加模式的元素


您可以在ParseFilter中嵌入各种样板文件删除库,但它们的精度差异很大。

感谢回复Julien。文本提取器已在crawler-conf.yaml文件中配置。感谢回复Julien。文本提取器已在crawler-conf.yaml文件中配置。