@Override
  public void visit(Page page)
  {
    if (!(page.getParseData() instanceof HtmlParseData))
    {
      return;
    }

    HtmlParseData htmlParseData = (HtmlParseData)page.getParseData();

    Document doc = Jsoup.parse(htmlParseData.getHtml());

    Elements links = doc.select("a[href^=magnet]");

    if (links.size() > 0)
    {
      for (Element link : links)
      {
        String magnetLink = link.attr("href");
        MagnetURI magnet = new MagnetURI(magnetLink, "bitsnoop.com");
        Element seeders = doc.select("[title^=seed]").first();
        Element leechers = doc.select("[title^=leech]").first();
        try
        {
          if (seeders != null)
          {
            magnet.setSeeders(DataWorker.getNumberFormat().parse(seeders.text()).intValue());
          }
          if (leechers != null)
          {
            magnet.setLeechers(DataWorker.getNumberFormat().parse(leechers.text()).intValue());
          }
        }
        catch (ParseException e)
        {
          e.printStackTrace();
        }

        MagnetURI oldMagnet = m_parent.getMagnetLinks().putIfAbsent(magnet.getBtih(), magnet);
        if (oldMagnet != null)
        {
          if (oldMagnet.getSeeders() > magnet.getSeeders())
          {
            m_parent.getMagnetLinks().put(magnet.getBtih(), magnet);
          }
        }
        else
        {
          m_currentSize++;
        }
      }

      if (m_currentSize >= m_numOfMagnetsToRead)
      {
        getMyController().shutdown();
      }
    }
  }