我正在尝试解析网站以获取有关商店商品的一些信息。
但我有一些问题:如何解析分页。
我在 html 上发现了一些有关几个网址的信息,例如:“1,2,3..,25”页的商品。但我能想象的最好的是如何解析这个网址,只需获取网址,获取最后一页并为此页面进行迭代:例如我通过使用方法 Jsoup.connect(website.com).get().getElementsByClass( “某类”);
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 的哈希集中。
最佳答案
捕获组可用于从与正则表达式匹配的字符串中获取特定子字符串。括号标记捕获组。因此,页码本身的正则表达式将为 "page=(\\d+)"
。要从匹配中获取组的 thr 值,请使用 Matcher 对象中的 group
方法。如果您尚未使用匹配器对象,则可以从您的模式创建一个匹配器对象。另外,您应该注意,您的第一组是索引 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)
关于java - 解析 html 中的分页。使用jsoup,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53310153/