gpt4 book ai didi

java - Jsoup 获取错误结果

转载 作者:行者123 更新时间:2023-12-02 12:38:55 24 4
gpt4 key购买 nike

使用 Jsoup。该 URL 在浏览器上运行良好。但它在服务器上获取错误的结果。我也将 maxBodySize 设置为“0”。但它仍然只获得前几个标签。而且数据甚至与浏览器数据不同。你们能帮我一下吗?

String queryUrl = "http://www.juso.go.kr/addrlink/addrLinkApi.do?confmKey=U01TX0FVVEgyMDE3MDYyODE0MTYyMzIyMTcw&currentPage=1&countPerPage=20&keyword=연남동";

Document document = Jsoup.connect(queryUrl).maxBodySize(0).get();

最佳答案

您是否知道此端点返回分页数据?您的 URL 要求从第一页开始输入 20 个条目。我假设这些条目的顺序未指定,因此每次调用此端点时都可以获得不同的数据 - 检查是否存在可以确定特定排序顺序的 URL 参数。

无论如何,要阅读所有 2037 个条目,您必须按顺序进行。检查以下代码:

final String baseUrl = "http://www.juso.go.kr/addrlink/addrLinkApi.do";
final String key = "U01TX0FVVEgyMDE3MDYyODE0MTYyMzIyMTcw";
final String keyword = "연남동";
final int perPage = 100;
int currentPage = 1;

while (true) {
System.out.println("Downloading data from page " + currentPage);
final String url = String.format("%s?confmKey=%s&currentPage=%d&countPerPage=%d&keyword=%s", baseUrl, key, currentPage, perPage, keyword);

final Document document = Jsoup.connect(url).maxBodySize(0).get();

final Elements jusos = document.getElementsByTag("juso");
System.out.println("Found " + jusos.size() + " juso entries");

if (jusos.size() == 0) {
break;
}

currentPage += 1;
}

在本例中,我们要求每页 100 个条目(这是此端点支持的最大数量),并且只要调用特定页面返回任何 <juso> ,我们就调用它 21 次。元素。希望它能帮助解决您的问题。

关于java - Jsoup 获取错误结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45024067/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com