gpt4 book ai didi

java - 使用 Jsoup 从 URL 解析信息

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:18:48 24 4
gpt4 key购买 nike

我在使用 Jsoup 的 Java 项目中需要帮助(如果您认为有更有效的方法来达到目的,请告诉我)。我的程序的目的是从不同的 URL 中解析出某些有用的信息,并将其放入一个文本文件中。我不是 HTML 或 JavaScript 方面的专家,因此,我很难准确地用 Java 编写我想要解析的代码。在您在下面的代码中看到的示例之一的网站中,我感兴趣的使用 Jsoup 解析的信息是您在“路由”下的表格中可以看到的所有信息(路线、位置、船舶/航程、容器到达日期、容器出发日期;= 始发地,Seattle SSA Terminal T18, 26 Jun 15 A, 26 Jun 15 A……等等)。到目前为止,使用 Jsoup 我们只能解析网站的标题,但我们未能成功获取任何正文。这是我使用的代码,是从在线资源中获得的:

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

public class Jsouptest71115 {

public static void main(String[] args) throws Exception {
String url = "http://google.com/gentrack/trackingMain.do "
+ "?trackInput01=999061985";
Document document = Jsoup.connect(url).get();

String title = document.title();
System.out.println("title : " + title);

String body = document.select("body").text();
System.out.println("Body: " + body);


}
}

最佳答案

工作代码:

import org.jsoup.Connection;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

import java.io.IOException;
import java.util.ArrayList;

public class Sample {
public static void main(String[] args) {
String url = "http://homeport8.apl.com/gentrack/blRoutingPopup.do";

try {
Connection.Response response = Jsoup.connect(url)
.data("blNbr", "999061985") // tracking number
.method(Connection.Method.POST)
.execute();

Element tableElement = response.parse().getElementsByTag("table")
.get(2).getElementsByTag("table")
.get(2);

Elements trElements = tableElement.getElementsByTag("tr");
ArrayList<ArrayList<String>> tableArrayList = new ArrayList<>();

for (Element trElement : trElements) {
ArrayList<String> columnList = new ArrayList<>();
for (int i = 0; i < 5; i++) {
columnList.add(i, trElement.children().get(i).text());
}
tableArrayList.add(columnList);
}

System.out.println("Origin/Location: "
+tableArrayList.get(1).get(1));// row and column number

System.out.println("Discharge Port/Container Arrival Date: "
+tableArrayList.get(5).get(3));


} catch (IOException e) {
e.printStackTrace();
}


}


}

输出:

Origin/Location: SEATTLE SSA TERMINAL (T18), WA  

Discharge Port/Container Arrival Date: 23 Jul 15  E

关于java - 使用 Jsoup 从 URL 解析信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31420109/

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