JSOUP获取网页数据返回403错误(403 error loading URL,connection类)
2012-09-14 15:13
169 查看
最近做的项目需要利用JSOUP进行网页获取和解析,但是遇到了拒绝访问的问题,返回的结果是:
java.io.IOException: 403 error loading URL http://www.xxx.com/xxx
连接代码是这样的:
原本这种方式在大部分时间都可以正确的获取网页代码。
403错误是权限问题拒绝访问,大家都知道的。
我搜了下原因,原来是请求内容不完全,然后我写了如下代码就OK了。
原因分析:
有些网站的服务器在响应http请求的时候,需要客户端提交的信息比较完善,而在Jsoup的Connection类中这个Header就是完善请求信息用的。
我们的浏览器在请求网页的时候会在请求的头部head中发送一些数据,比如浏览器类型,版本,语言等等。当我们用Jsoup去完成请求网页的工作时,最好也要完善请求包头信息,完成这个工作的就是header方法。
Set a request header.
Parameters:
在上面的纠正代码中可以看到我在header里name设置的是User-Agent(表示我要设置的header中的字段,后面的第二个参数value就是对这个字段赋的值)。header value中设置的是操作系统,浏览器,语言类型等等信息(惭愧,我也没完全知道每个值的意思)。这样提交的请求有了比较完善的头信息后,一般的网站server就更乐意服务了。
技术相关更多文章猛击:哇啦天堂论坛技术区
java.io.IOException: 403 error loading URL http://www.xxx.com/xxx
连接代码是这样的:
Document doc = Jsoup.connect(urlString).get();
原本这种方式在大部分时间都可以正确的获取网页代码。
403错误是权限问题拒绝访问,大家都知道的。
我搜了下原因,原来是请求内容不完全,然后我写了如下代码就OK了。
Document doc = Jsoup.connect(urlString).header("User-Agent", "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.4; en-US; rv:1.9.2.2) Gecko/20100316 Firefox/3.6.2").get();
原因分析:
有些网站的服务器在响应http请求的时候,需要客户端提交的信息比较完善,而在Jsoup的Connection类中这个Header就是完善请求信息用的。
我们的浏览器在请求网页的时候会在请求的头部head中发送一些数据,比如浏览器类型,版本,语言等等。当我们用Jsoup去完成请求网页的工作时,最好也要完善请求包头信息,完成这个工作的就是header方法。
header
Connection header(String name, String value)
Set a request header.
Parameters:
name- header name
value- header valueReturns:this Connection, for chainingSee Also:
Connection.Base.headers()
在上面的纠正代码中可以看到我在header里name设置的是User-Agent(表示我要设置的header中的字段,后面的第二个参数value就是对这个字段赋的值)。header value中设置的是操作系统,浏览器,语言类型等等信息(惭愧,我也没完全知道每个值的意思)。这样提交的请求有了比较完善的头信息后,一般的网站server就更乐意服务了。
技术相关更多文章猛击:哇啦天堂论坛技术区
相关文章推荐
- JSOUP获取网页数据返回403错误(403 error loading URL,connection类)
- JSOUP获取网页数据返回403错误(403 error loading URL,connection类)
- org.jsoup.HttpStatusException: HTTP error fetching URL. Status=403 爬取网站出现403错误
- HttpURLConnection连接网页和获取数据的使用实例
- 获取远程的字符串(请求一个URL, 返回这个请求页面的页面数据)
- 通过HTTP方式获取URL返回结果数据(Java)
- 使用jsoup获取网页数据实现加载更多和下拉刷新(二)
- PHP获取网页返回的JSON数据并在微信换行展示
- Java 网络 URL 从网页上获取数据
- Java程序使用httpClient发送Url链接,并获取返回的数据信息
- 微信网页授权获取用户信息 返回{"errcode":40066,"errmsg":"invalid url hint: [FZbxRA0556sz12!]"}错误
- 请求Url返回数据较大,使结果分页获取
- [Jsoup] 模拟浏览器:post方式模拟登陆获取网页数据(二)
- 解决httpurlconnection获取网页数据部分中文乱码问题
- Jsoup 网页抓取数据之获取汽车时刻表 实例解析
- java 获取url地址返回的数据
- Java请求一个URL。获取网站返回的数据。
- java后台通过url获取返回数据
- Ajax在静态页面中向指定url发送json请求获取返回的json数据
- [置顶] 【BigData】Jsoup+FusionCharts实现根据网页url解析网页数据,并用图表显示