gpt4 book ai didi

Java - 从网站获取数据不起作用(403 错误)

转载 作者:行者123 更新时间:2023-12-01 09:50:43 24 4
gpt4 key购买 nike

我正在尝试制作一个从 here 获取数据的程序但出现错误(403错误)

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;

public class Test {

public static void main(String[] args) throws IOException {
URL urlObject;
String codigo;
try{
urlObject=new URL("http://www.pccomponentes.com/intel_core_i5_6600_3_3ghz_box.html");
InputStreamReader isr = new InputStreamReader(urlObject.openStream());
BufferedReader br=new BufferedReader(isr);
while((codigo=br.readLine())!=null)
System.out.println(codigo);
br.close();

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

}

当我运行程序时出现此错误:

java.io.IOException: Server returned HTTP response code: 403 for URL: http://www.pccomponentes.com/intel_core_i5_6600_3_3ghz_box.html
at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
at java.net.URL.openStream(Unknown Source)
at Test.Test.main(Test.java:17)

该程序的目的是获取产品的价格并使用 System.out.println 打印出来,我该怎么做?

最佳答案

我刚刚使用 curl 进行了测试,它可以工作,但是如果我设置默认情况下 Java 使用的 User-Agent 我会得到这个403 HTTP 错误。看来这个网站的站长不喜欢 Java :-)

要解决此问题,只需通过执行以下操作设置另一个User-Agent:

urlObject=new URL("http://www.pccomponentes.com/intel_core_i5_6600_3_3ghz_box.html");
URLConnection c = urlObject.openConnection();
c.setRequestProperty("User-Agent", "<put a the user agent of your choice here>");
InputStreamReader isr = new InputStreamReader(c.getInputStream());

如果您不知道要使用哪个User-Agent,请使用您可以从here获取的浏览器。

关于Java - 从网站获取数据不起作用(403 错误),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37620706/

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