gpt4 book ai didi

java - 打开与 Jsoup 的连接,获取状态码并解析文档

转载 作者:搜寻专家 更新时间:2023-10-31 08:07:29 27 4
gpt4 key购买 nike

我正在使用 jsoup 创建一个类,它将执行以下操作:

  1. 构造函数打开一个到 url 的连接。
  2. 我有一个方法可以检查页面的状态。即 200、404 等。
  3. 我有一个方法来解析页面并返回一个 url 列表。#

下面是我正在尝试做的事情的粗略工作,不是很粗略,因为我已经尝试了很多不同的事情

public class ParsePage {
private String path;
Connection.Response response = null;

private ParsePage(String langLocale){
try {
response = Jsoup.connect(path)
.userAgent("Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.21 (KHTML, like Gecko) Chrome/19.0.1042.0 Safari/535.21")
.timeout(10000)
.execute();
} catch (IOException e) {
System.out.println("io - "+e);
}
}

public int getSitemapStatus(){
int statusCode = response.statusCode();
return statusCode;
}

public ArrayList<String> getUrls(){
ArrayList<String> urls = new ArrayList<String>();

}
}

如您所见,我可以获取页面状态,但是使用构造函数中已经打开的连接我不知道如何获取要解析的文档,我尝试使用:

Document doc = connection.get();

但这是不行的。有什么建议么?或者更好的方法来解决这个问题?

最佳答案

Connection.Response 的 JSoup 文档中所述类型,有一个 parse() 方法将响应的主体解析为 Document 并返回它。当你拥有它时,你可以用它做任何你想做的事。

例如看getUrls()的实现

public class ParsePage {
private String path;
Connection.Response response = null;

private ParsePage(String langLocale){
try {
response = Jsoup.connect(path)
.userAgent("Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.21 (KHTML, like Gecko) Chrome/19.0.1042.0 Safari/535.21")
.timeout(10000)
.execute();
} catch (IOException e) {
System.out.println("io - "+e);
}
}

public int getSitemapStatus() {
int statusCode = response.statusCode();
return statusCode;
}

public ArrayList<String> getUrls() {
ArrayList<String> urls = new ArrayList<String>();
Document doc = response.parse();
// do whatever you want, for example retrieving the <url> from the sitemap
for (Element url : doc.select("url")) {
urls.add(url.select("loc").text());
}
return urls;
}
}

关于java - 打开与 Jsoup 的连接,获取状态码并解析文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10518972/

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