仅爬网动态数据

时间:2013-02-11 18:02:36

标签: web-crawler crawler4j

我正在尝试抓取当地新闻报道的档案,并获得了预期的结果。有没有办法让我对爬虫进行编程,使得每个页面上的静态按钮(例如Home,Button和它们的页脚都不相同)不包含在爬行中

这是我用来显示已抓取数据的代码

System.out.println(Jsoup.parse(html).body().text_mod());

2 个答案:

答案 0 :(得分:4)

我看到了两个针对您的问题的解决方案,一个通用解决方案和一个临时解决方案。

1 Generic

要从网站获取内容,您可以使用boilerpipe等工具删除样板代码。这将导致获取库提取的文本。但是,你几乎无法控制套管内的内容。

2 Ad-Hoc

您可以使用Jsoup删除树中不需要的节点。为此,您将获得由Jsoup处理的文档:

Document doc = Jsoup.parse(html):

然后使用Jsoup选择器获取要从页面中删除的节点。请参阅此处的文档:Jsoup selectors。选择节点后,使用Element类中的remove方法。

答案 1 :(得分:1)

shouldVisit方法怎么样?您可以根据URL模式添加条件,例如:

    @Override
public boolean shouldVisit(WebURL url) {
    String href = url.getURL().toLowerCase();
    return (!href.contains("static/button/url/"));
}

这适合我。