gpt4 book ai didi

java - 如何在Java中使用HTML响应来提取数据?

转载 作者:行者123 更新时间:2023-12-02 12:48:17 25 4
gpt4 key购买 nike

因此,当我使用 Java 语言发送 HTTP 请求时,我得到 HTML 代码形式的响应。例如,发送请求:http://www.google.com/search?q=what%20is%20mango

获取该页面HTML代码形式的响应:https://www.google.co.in/search?q=what+is+mango&rlz=1C1CHBF_enIN743IN743&oq=what+is+mango&aqs=chrome..69i57j0l5.4095j0j7&sourceid=chrome&ie=UTF-8

因此,从这个响应页面,我再次想将请求发送到维基百科页面(在响应页面中列出),然后我想从维基百科页面复制有关芒果的内容并将其写入我系统上的文件中

我发送 Google 搜索请求的代码:

package api_test;

import java.io.*;
import java.net.*;
import java.util.*;

public class HttpURLConnectionExample {

private final String USER_AGENT= "Mozilla/5.0";

public static void main(String[] args) throws Exception {

HttpURLConnectionExample http= new HttpURLConnectionExample();

System.out.println("testing 1- send http get request");
http.sendGet();

}

private void sendGet() throws Exception{

Scanner s= new Scanner(System.in);
System.out.println("enter the URL");
String url = s.nextLine();

URL obj = new URL("http://"+url);
HttpURLConnection con = (HttpURLConnection) obj.openConnection();

// optional default is GET
con.setRequestMethod("GET");

//add request header
con.setRequestProperty("User-Agent", USER_AGENT);

int responseCode = con.getResponseCode();
System.out.println("\nSending 'GET' request to URL : " + url);
System.out.println("Response Code : " + responseCode);

BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();

while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();

//print result
System.out.println(response.toString());
}

}

最佳答案

我认为你需要的是一个 HTML 解析器,比如 jsoup .

你可以做类似的事情

Document doc = Jsoup.connect("http://www.google.com/search?q=what%20is%20mango").get();
Element result = doc.select("#search h3.r a").first();
String link = result.attr("data-href");

我不确定 Google 的布局是否发生了很大变化,但现在 CSS 选择器“#search h3.r a”正在工作。

关于java - 如何在Java中使用HTML响应来提取数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44685775/

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