@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();
    }

}
  • Вопрос задан
  • 193 просмотра
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы