开发过程中,用Jsoup解析糯米团购网站页面的时候,发现取得的页面和浏览器查看到的页面不一样,而是手机页面。
程序代码如下:
//取得整个页面内容;
content = Jsoup.connect("http://www.nuomi.com").timeout(6000).get();
经过跟踪代码执行,发现content取得的内容和用浏览器直接访问的内容不一样。
经过查询资料,发现是User-Agent 的问题,在Jsoup中默认没有指定User-Agent,网站的服务器则认为这个访问来自手机,返回的是手机的页面。
将User-Agent加入到Jsoup中,问题解决。
content = Jsoup.connect(url).userAgent("Mozilla/4.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)")
.timeout(6000).get();//取得整个页面内容;
以上代码是模拟的IE9的User-Agent信息,下面是各个版本浏览器的User-Agent信息。
IE6:Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)
IE7:Mozilla/4.0 (compatible; MSIE 7.0b; Windows NT 6.0)
IE8:Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0)
IE9:Mozilla/4.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)
Maxthon:Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.12 (KHTML, like Gecko) Maxthon/3.0 Chrome/22.0.1229.79 Safari/535.12
Firefox:Mozilla/5.0 (Windows NT 5.1; zh-CN; rv:1.9.1.3) Gecko/20100101 Firefox/8.0
Chrome:Mozilla/5.0 (Windows NT 5.1; zh-CN) AppleWebKit/535.12 (KHTML, like Gecko) Chrome/22.0.1229.79 Safari/535.12
Opera:Opera/9.99 (Windows NT 5.1; U; zh-CN) Presto/9.9.9
Safari:Mozilla/5.0 (Windows NT 5.1; zh-CN) AppleWebKit/535.12 (KHTML, like Gecko) Version/5.0.1 Safari/535.12