Дом Краулер, как получить текстовые сообщения с веб-сайтов - PullRequest
0 голосов
/ 04 ноября 2019

Я хочу восстановить текст и ссылки с сайта. Мне удалось получить ссылки, но я не знаю, как получить текст из HTML. Мне нужна какая-то функция, как обрезка, чтобы сделать это, это мой код:

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

import java.net.URL;
import java.util.Collections;
import java.util.HashSet;
import java.util.Set;
import java.io.IOException;



public class WebSpider {
    private final Set<URL> links;
    private final long startTime;
    private WebSpider(final URL startURL){
        this.links=new HashSet<>();
        this.startTime=System.currentTimeMillis();
        crawl(initURLS(startURL));

    }

    private void crawl(final Set<URL> urls) {
        if(!urls.isEmpty()){
            final Set<URL> newURLS = new HashSet<>();
             try{
              this.links.addAll(urls);
              for(final URL url:urls){
                  System.out.println("time=" + (System.currentTimeMillis()-this.startTime)+"connected to"+ url );
                  final Document document= Jsoup.connect(url.toString()).get();
                  final Elements linksOnPage= document.select("a[href]");
                  for(final Element element:linksOnPage){
                  final String urlText= element.attr("abs:href");
                  final URL discoveredURL =new URL(urlText);
                  newURLS.add(discoveredURL);
                  }
              }
             } catch (final Exception |Error ignored){
             }
                crawl(newURLS);
        }
    }

    private Set<URL> initURLS(final URL startURL) {
        return Collections.singleton(startURL);
    }
    public static void main(String[] args) throws IOException {
        final WebSpider spider;
        spider = new WebSpider(new URL("http://www.talkmorocco.net/"));
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...