Задать вопрос
@vetalmatitskiy
testing engineer

Как програмно пробежать по страницам Wiktionary(Wiki-словарь)?

Доброго дня, уважаемые гуру разработки
пытаюсь вытащить из en.wiktionary.org список нужных слов с использованием движка Jaunt (http://jaunt-api.com)
написал первую версию приложения, которое пробегает часть страниц, но потом падаем с ошибкой
основной алгоритм прост до банальности: захожу на стартовую страницу, вытаскиваю из нее ссылку на следующую страницу, перехожу на следую страницу и так далее.
Не знаю почему, но получаемый линк становится каждый раз все длиннее, и видимо на определенном шаге становятся настолько длинными, что перестают обрабатываться. хотя при ручном проходе по страницам линки имеют нормальную длину.
возможно ли предотвратить разбухание линков?

примеры ссылок которые получается вытащить
next page:en.wiktionary.org/w/index.php?title=Category:Engli...
next page:en.wiktionary.org/w/index.php?title=Category:Engli...
next page:en.wiktionary.org/w/index.php?title=Category:Engli...


сам код при этом имеет вид
import com.jaunt.*;

public class Wiksurfer {

    public static void surfPages() {
        int i = 0;
        UserAgent userAgent = new UserAgent();
        userAgent.settings.autoSaveAsHTML = true;  //change settings to autosave last visited page.
        //System.out.println("SETTINGS:\n" + userAgent.settings);   
        try {

            String href = "http://en.wiktionary.org/wiki/Category:English_uncountable_nouns";

            for (i = 0; i < 20; i++) {
                userAgent.visit(href);
                href = userAgent.doc.findFirst("<a title>next page").getAt("href");

                System.out.println("next page:" + href);
            }
        } catch (JauntException e) {
            System.err.println(e);
        } finally {
            System.out.println("final i" + i);
        }
    }

    public static void main(String[] args) {
        surfPages();
    }

}
  • Вопрос задан
  • 195 просмотров
Подписаться 2 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Java-разработчик с нуля
    12 месяцев
    Далее
  • Skillbox
    Java-разработчик
    8 месяцев
    Далее
  • ProductStar
    Профессия: Java-разработчик
    9 месяцев
    Далее
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы