当我想获取特定网页的源代码时,我使用以下代码:
URL url = new URL("https://google.de");
URLConnection urlConnect = url.openConnection();
BufferedReader br = new BufferedReader(new InputStreamReader(urlConnect.getInputStream())); //Here is the error with the amazon url
StringBuffer sb = new StringBuffer();
String line, htmlData;
while((line=br.readLine())!=null){
sb.append(line+"\n");
}
htmlData = sb.toString();
上面的代码没有问题,但是当你的网址被调用时......
URL url = new URL("https://amazon.de");
...那么有时候你可能会遇到IOException错误 - >服务器错误代码503.在我看来,这没有任何意义,因为我可以使用浏览器进入亚马逊网页而没有任何错误。
答案 0 :(得分:5)
使用https://amazon.de
访问curl -v https://amazon.de
时,您会在响应中获得 503 或 301 状态代码(在关注重定向时,从引用的位置https://www.amazon.de/获得 503 。正文包含以下注释:
要讨论对亚马逊数据的自动访问,请联系api-services-support@amazon.com。 有关迁移到我们的API的信息,请参阅https://developer.amazonservices.de/ref=rm_5_sv上的Marketplace API,或https://partnernet.amazon.de/gp/advertising/api/detail/main.html/ref=rm_5_ac处的广告用例的产品广告API。
我认为,当您的请求被检测为来自非浏览器上下文(即通过解析用户代理)以暗示您使用API而不是直接抓取网站时,Amazon会返回此响应。