在 html 中解析分页。使用 jsoup
Parse pagination in html. using jsoup
我正在尝试解析网站以获取有关商店商品的一些信息。
但我有一些问题:如何解析分页。
我在 html 上找到了一些关于少数 url 的信息,例如:商品的“1,2,3..,25”页。但我能想象的最好的是如何解析这个 urls,只需获取 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/
但有时 url 就像:
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+)"
。要从匹配中获取组的值,请使用 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)
我正在尝试解析网站以获取有关商店商品的一些信息。
但我有一些问题:如何解析分页。
我在 html 上找到了一些关于少数 url 的信息,例如:商品的“1,2,3..,25”页。但我能想象的最好的是如何解析这个 urls,只需获取 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/
但有时 url 就像:
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+)"
。要从匹配中获取组的值,请使用 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)