Как получать контент в веб-сканировании

Привет! Я пытаюсь реализовать этот псевдокод для алгоритма паука для изучения сети. Нужна идея для моего следующего этапа псевдокода: " использовать ********* для извлечения содержимого", У меня есть метод в другом классе *********, который имеет способ получить все URL-адреса этой веб-страницы, но задается вопросом, как я могу использовать его в этом классе?

// method to crawl web and print out all URLs that the ****** visit
public List<string> crawl(String url, String keyword) throws IOException{
 String currentUrl;
 // while list of unvisited URLs is not empty
 while(unvisited != null ){
 // take URL from list 
 currentUrl = unvisited.get(0);
 //using ******Leg to fetch content 
 ********* leg = new *********();
 }
 return unvisited;
}
</string>

Ура!! Попробуем это... Однако я пробовал это без использования очереди D.S, он почти работает, но не останавливает программу при поиске какого-либо слова.

И когда он находит, он показывает только ссылку веб-страницы не на все URL-адреса, где он находит слово. Интересно, можно ли так сделать?

private static final int MAX_PAGES_TO_SEARCH = 10;
 private Set<string> pagesVisited = new HashSet<string>();
 private List<string> pagesToVisit = new LinkedList<string>();
public void crawl(String url, String searchWord)
 {
 while(this.pagesVisited.size() < MAX_PAGES_TO_SEARCH)
 {
 String currentUrl;
 ********* leg = new *********();
 if(this.pagesToVisit.isEmpty())
 {
 currentUrl = url;
 this.pagesVisited.add(url);
 }
 else
 {
 currentUrl = this.nextUrl();
 }
 leg.getHyperlink(currentUrl);
 boolean success = leg.searchForWord(searchWord);
 if(success)
 {
 System.out.println(String.format("**Success** Word %s found at %s", searchWord, currentUrl));
 break;
 }
 this.pagesToVisit.addAll(leg.getLinks());
 }
 System.out.println("\n**Done** Visited " + this.pagesVisited.size() + " web page(s)");
 }
</string></string></string></string>
1 ответ

Алгоритм обхода по существу Первый поиск по ширине, вам нужно будет поддерживать очередь нераспределенного URL-адреса и каждый раз, когда вы посещаете URL-адрес, -queue, и вам нужно будет объявить любой невидимый URL-адрес, который вы найдете в своем парсера HTML (*********).

Условия добавления URL-адреса в очередь зависят от вас, но, как правило, вам нужно будет удерживать расстояние URL-адреса от семенного URL-адреса в качестве точки остановки, чтобы вы не навечно проходили через Интернет. Эти правила могут также включать в себя специфику того, что вы заинтересованы в поиске, чтобы вы только добавляли URL-адрес, который имеет значение.

licensed under cc by-sa 3.0 with attribution.