如何使用java抓取网站而不进行无限循环

时间:2015-12-22 12:41:26

标签: java jsoup

我尝试使用java和Jsoup抓取社交媒体数据。首先,我提供一个网址并尝试抓取数据。

但它会无限循环。在那个基本网址中,有很多儿童网址。而那些儿童网址指的是其他一些基本网址。这个过程正在进行无限的网址。

如何通过阻止无限循环来限制网址。任何人都可以帮我解决这个问题。

2 个答案:

答案 0 :(得分:0)

将您访问过的所有网址添加到链接列表(或类似内容),当您无法在列表中找到更多网址时,您就可以完成循环。

通过

检查基本名称是否正确
  private String basename="www.example.com";

  public boolean compareBasename(String url){
      URI uri = new URI(url);
      String domain = uri.getHost();
      return domain.equals(basename);
 }

将字符串域与您正在检查的页面的基本名称进行比较

答案 1 :(得分:0)

使用Set来保留您的网址:

customer

然后每次测试:

 Set<String> already_visited=new HashSet<String>()

并插入

 if (!already_visited(new_url)) // do what you want

然后,你没有周期