用户代理异常:java.io.IOException: Server returned HTTP response code: 403 for URL
2015-07-13 11:14
543 查看
当你使用java程序检索其他网站上的内容时,如果其服务器设置了禁止抓取,或者其访问需要权限,
如果此时你去检索网页那么就会有异常该异常出现.
如果是服务器需要访问权限,比如说你要登录才能访问的网页,那么你抓取不了的.
如果是服务器端禁止抓取,那么这个你可以通过设置User-Agent来欺骗服务器
connection.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");
User Agent中文名为用户代理,简称 UA,它是一个特殊字符串头,使得服务器能够识别客户使用的操作系统及版本、CPU 类型、浏览器及版本、浏览器渲染引擎、浏览器语言、浏览器插件等。
一些网站常常通过判断 UA 来给不同的操作系统、不同的浏览器发送不同的页面,因此可能造成某些页面无法在某个浏览器中正常显示,但通过伪装 UA 可以绕过检测。
示例代码:
如果此时你去检索网页那么就会有异常该异常出现.
如果是服务器需要访问权限,比如说你要登录才能访问的网页,那么你抓取不了的.
如果是服务器端禁止抓取,那么这个你可以通过设置User-Agent来欺骗服务器
connection.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");
User Agent中文名为用户代理,简称 UA,它是一个特殊字符串头,使得服务器能够识别客户使用的操作系统及版本、CPU 类型、浏览器及版本、浏览器渲染引擎、浏览器语言、浏览器插件等。
一些网站常常通过判断 UA 来给不同的操作系统、不同的浏览器发送不同的页面,因此可能造成某些页面无法在某个浏览器中正常显示,但通过伪装 UA 可以绕过检测。
示例代码:
public static String fetchHtml(String urlString) { try { java.net.URL url = new java.net.URL(urlString); // 根据 String 表示形式创建 URL 对象。 java.net.HttpURLConnection conn = (java.net.HttpURLConnection) url.openConnection(); // 返回一个 URLConnection 对象,它表示到 URL 所引用的远程对象的连接。 conn.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");//设置代理 java.io.InputStreamReader isr = new java.io.InputStreamReader(conn.getInputStream()); // 返回从此打开的连接读取的输入流。 java.io.BufferedReader br = new java.io.BufferedReader(isr); // 创建一个使用默认大小输入缓冲区的缓冲字符输入流。 String temp; StringBuffer html = new StringBuffer(); while ((temp = br.readLine()) != null) { //按行读取输出流 if (!temp.trim().equals("")) { html.append(temp).append("\n"); //读完每行后换行 } } br.close(); //关闭 isr.close(); //关闭 return html.toString(); //返回此序列中数据的字符串表示形式。 } catch (Exception e) { e.printStackTrace(); return null; } }
相关文章推荐
- 细小知识点之计算机网络
- 协定需要双工,但是绑定“WSHttpBinding”不支持它或者因配置不正确而无法支持它
- TCP/IP网络编程 学习笔记_4 --OSI七层网络模型
- TCP/IP网络编程 学习笔记_4 --OSI七层网络模型
- WAF(Web Appllication Firewall)网络应用防火墙
- ON_WM_TIMER() void (__cdecl CtestDlg::* )(UINT)”转换为“void (__cdecl CWnd::* )(UINT_PTR)本文来自: http://ww
- 网络参数
- 网络爬虫(四) Java实现简单的网络爬虫
- HTTP status codes
- http://www.cnblogs.com/flashsky/articles/642720.html
- TCP/UDP网络性能测试工具 - Netperf (zz) ..网络测试工具
- BP神经网络及其在教学质量评价中 的应用
- HTTP协议相关内容及web通信原理的理解
- 如何使用云桌面系统提高涉密网络安全性与方便性
- 7月第1周网络安全报告:发现放马站点167个
- Android 判断手机是否连接网络
- Android--HttpURLConnection及HttpClient选择
- android 截图,网络发送,只需1.8秒
- Eworkpal-ESN(企业社交网络)功能
- 网络爬虫(三) Java实现简单的网络爬虫