Я использую Jsoup для загрузки содержимого страницы, а затем для его анализа.
public static void main(String[] args) throws IOException {
Document document = Jsoup.connect("http://www.toysrus.ch/product/index.jsp?productId=89689681").get();
final Elements elements = document.select("dt:contains(" + "EAN/ISBN:" + ")");
System.out.println(elements.size());
}
Проблема: если вы просматриваете источник содержимого страницы, существует тег <dt>
, который содержит EAN/ISBN:
текст, но если вы запустите приведенный выше код, он выдаст вам 0
на выходе, а мне он должен дать 1
. Я уже проверил html с помощью document.html()
, кажется, html-теги есть, но тег, который я хотел, заменен символами, такими как <dt>
, вместо этого должен быть <dt>
. Тот же код работает для других URL-адресов продуктов с того же сайта.
Я уже работал с Jsoup и разработал много парсеров, но я не понимаю, почему очень простой код не работает. Это странно! Это ошибка Jsoup? Кто-нибудь может мне помочь?
xmlParser
? 04.05.2017connect().get()
или parse(), вы неявно указываете jsoup использовать его htmlParser(). Этот синтаксический анализатор обрабатывает ввод как HTML5 и обеспечивает создание нормализованного документа на основе знания семантики входящих тегов. При синтаксическом анализе HTML5 будут применяться правила синтаксического анализа (например, существует белый список тегов; незакрытые теги будут автоматически закрыты; ‹ссылка› bla‹/ссылка› будет преобразована в ‹ссылка /› bla и т. д.) 04.05.2017connect
также должен работать сJsoup.connect(url).parser(Parser.xmlParser())
04.05.2017