java - 解析 html 中的分页。使用jsoup

标签 java regex jsoup

我正在尝试解析网站以获取有关商店商品的一些信息。 但我有一些问题:如何解析分页。 我在 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/

相关文章:

Java:存储为字符串时服务器响应被切断?

python - OR 运算符内的 OR 运算符 - RegEX

java - 正则表达式不匹配

Jsoup.connect(string) 编码问题

java - 检索包含特定字符串的数组项

java - 有人可以告诉我为什么我的生命游戏代码不起作用吗?

java - 如何将 JSONobject 转换为对象映射?

javascript - 正则表达式到字符串中的精确值

javascript - 如何在 Java 中使用 HtmlUnit 获取由 javascript 创建的 Html,然后使用 Jsoup 解析它?

java - Tasklet 在 spring batch 中删除一个表