Разберите нумерацию страниц в html.используя jsoup - PullRequest
0 голосов
/ 15 ноября 2018

Я пытаюсь разобрать сайт для получения информации о товарах в магазине.Но у меня есть несколько вопросов о том, как разобрать нумерацию страниц.Я нашел на html некоторую информацию о нескольких URL, таких как: «1,2,3 .., 25» страниц товаров.Но лучше всего то, что я могу себе представить, как проанализировать эти URL-адреса, просто получить URL-адрес, получить последнюю страницу и выполнить итерацию для этой страницы: например, URL-адрес, полученный с помощью метода Jsoup.connect (website.com) .get (). GetElementsByClass ("SomeClass");https://somewebsite.com/somegoods/somecategory/page=1/, https://somewebsite.com/somegoods/somecategory/page=2/, https://somewebsite.com/somegoods/somecategory/page=24/ но иногда ссылки вроде: https://somewebsite.com/somegoods/somecategory/filter/page=1;some_information_later/ https://somewebsite.com/somegoods/somecategory/filter/page=2;some_information_later/ https://somewebsite.com/somegoods/somecategory/filter/page=13;some_information_later/

Можете ли вы помочь мне с этим?Я пытался использовать регулярные выражения, но я не знаю, как написать его для получения чисел после "page =" и до / или;Я подумал, что могу просто получить последний номер страницы, сделать итерацию от 1 до последней, поместить ее в URL и сохранить ее в хэшсет URLS.

1 Ответ

0 голосов
/ 15 ноября 2018

Группы захвата могут использоваться для получения определенных подстрок из строки, которая соответствует вашему регулярному выражению.Скобки отмечают группы захвата.Таким образом, регулярное выражение для самого номера страницы будет "page=(\\d+)".Чтобы получить значение группы из совпадения, используйте метод group из вашего объекта Matcher.Если вы еще не используете объект Matcher, вы можете создать его из своего Pattern.Кроме того, следует отметить, что вашей первой группой является индекс 1 (индекс 0 дает всю совпадающую строку).

Для получения дополнительной информации: Метод группы: https://docs.oracle.com/javase/7/docs/api/java/util/regex/Matcher.html#group(int) Сопоставитель: https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html#matcher(java.lang.CharSequence)

...