解析html中的分页。使用jsoup

时间:2018-11-14 23:12:39

标签: java regex jsoup

我正在尝试解析网站以获取有关商店中商品的一些信息。 但是我有一些问题:如何解析分页。 我在html上找到了一些关于一些url的信息,例如:“ 1,2,3 ..,25”页商品。但最好的是我可以想象如何解析此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并将其保存到URL的哈希集。

1 个答案:

答案 0 :(得分:1)

捕获组可用于从与您的正则表达式匹配的字符串中获取特定的子字符串。括号标记捕获组。因此,页码本身的正则表达式为"page=(\\d+)"。要从匹配项中获取组的值,请使用Matcher对象中的group方法。如果尚未使用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)