Web crawler 如何使用stormcrawler从网站抓取特定数据

Web crawler 如何使用stormcrawler从网站抓取特定数据,web-crawler,apache-storm,data-extraction,stormcrawler,Web Crawler,Apache Storm,Data Extraction,Stormcrawler,我正在使用stormcrawler(v1.16)抓取新闻网站,并将数据存储在Elasticsearch(v7.5.0)上。我的爬虫配置文件是。我正在使用kibana进行可视化。我的问题是 在抓取新闻网站的时候,我只想要文章内容的URL,但我也要得到广告的URL,网站上的其他标签。我需要做什么和在哪里做更改 如果我必须从URL中只获取特定的内容(比如只获取标题或内容),我们如何才能做到这一点 编辑: 我想在内容索引中添加一个字段。因此,我在src/main/resources/parsefi

我正在使用stormcrawler(v1.16)抓取新闻网站,并将数据存储在Elasticsearch(v7.5.0)上。我的爬虫配置文件是。我正在使用kibana进行可视化。我的问题是

  • 在抓取新闻网站的时候,我只想要文章内容的URL,但我也要得到广告的URL,网站上的其他标签。我需要做什么和在哪里做更改
  • 如果我必须从URL中只获取特定的内容(比如只获取标题或内容),我们如何才能做到这一点
编辑: 我想在内容索引中添加一个字段。因此,我在src/main/resources/parsefilter.json、ES_IndecInit.sh和Crawler-conf.yaml中进行了更改。我添加的XPATH是正确的。我加上

“parse.pubDate”:“//META[@itemprop=\“datePublished\”]/@content”

在parsefilter中

parse.PublishDate=PublishDate

在爬虫配置中,添加了

PublishDate”:{
“类型”:“文本”,
“索引”:假,
“存储”:true}

在ES_IndexInit.sh的属性中,但我仍然没有在kibana或elasticsearch中获得任何名为PublishDate的字段。 ES_IndexInit.sh映射如下:

{
“映射”:{
“_来源”:{
“已启用”:false
},
“财产”:{
“发布日期”:{
“类型”:“文本”,
“索引”:假,
“商店”:真的吗
},
“内容”:{
“类型”:“文本”,
“字段”:{
“关键字”:{
“类型”:“关键字”,
“忽略上面的内容”:256
}
}
},
“说明”:{
“类型”:“文本”,
“商店”:真的吗
},
“域”:{
“类型”:“文本”,
“字段”:{
“关键字”:{
“类型”:“关键字”,
“忽略上面的内容”:256
}
}
},
“主持人”:{
“类型”:“关键字”,
“商店”:真的吗
},
“关键词”:{
“类型”:“文本”,
“字段”:{
“关键字”:{
“类型”:“关键字”,
“忽略上面的内容”:256
}
}
},
“标题”:{
“类型”:“文本”,
“商店”:真的吗
},
“url”:{
“类型”:“关键字”,
“商店”:真的吗
}
}
}

}
一种仅为网站新闻页面编制索引的方法是依赖网站地图,但并非所有网站都会提供这些索引

或者,您需要一种机制作为解析的一部分,可能在ParseFilter中,以确定页面是新闻项,并根据索引期间元数据中是否存在键/值进行筛选

在中的实现方式是种子URL是站点地图或RSS提要

索引内容,只需将其注释掉即可

  indexer.text.fieldname: "content"

在配置中。

Hi Blackhawk。您可以编辑您的问题,并将您刚才在评论中添加的内容添加到问题中。这样每个人都可以立即看到它…:)。Kibana链接当前似乎已断开。JSoupParserBolt从页面提取URL。您可以使用“谢谢您的建议”筛选在获取的网页上找到的URL。我已经编辑了questionhi Blackhawk,你得到内容了吗?我也陷入了同样的困境,如何创建自定义类,如何使用它,为什么我们在seeds.txt中提供的网站内容没有弹性。或者如何在没有任何弹性或任何其他技术的情况下将内容存储在文件中。有人可以发布带有风暴爬虫的自定义刮板吗?