我对这个请求到底发生了什么有点困惑。通过使用标准浏览器单击链接可以看到,项目图像显示良好,响应代码为200。(这可以从大多数浏览器的网络部分打开开发人员工具中看到。(然而,我写了一个脚本,将使用标准Java类ping响应代码的URL,我得到了一个403禁止的响应代码:
static public void main(String[] args) throws IOException
{
URL my_url = new URL("http://www.gessi.it/static/images/products/zoom/01410.png");
URLConnection u = my_url.openConnection();
if (u instanceof HttpURLConnection)
{
HttpURLConnection http_u = (HttpURLConnection) u;
System.out.println("Response code: " + http_u.getResponseCode());
System.out.println("Response message: " + http_u.getResponseMessage());
}
}
有人知道为什么脚本会收到被禁止的代码,而标准浏览器可以很好地查看图像吗?在过去,我看到过一些脚本的图像获取失败,因为Java不能以本机方式处理复杂的302重定向等,但在这种情况下没有。
http_u.setRequestProperty("User-Agent", "Mozilla 9.10");
服务器会查找用户代理请求标头,因此不需要为爬网程序、采集器等提供服务。