日期:2014-05-16  浏览次数:20472 次

Jsoup解析网址与浏览器查看内容不一致

开发过程中,用Jsoup解析糯米团购网站页面的时候,发现取得的页面和浏览器查看到的页面不一样,而是手机页面。

程序代码如下:

1
content?=?Jsoup.connect("http://www.nuomi.com").timeout(6000).get();//取得整个页面内容;

经过跟踪代码执行,发现content取得的内容和用浏览器直接访问的内容不一样。

经过查询资料,发现是User-Agent?的问题,在Jsoup中默认没有指定User-Agent,网站的服务器则认为这个访问来自手机,返回的是手机的页面。

将User-Agent加入到Jsoup中,问题解决。

代码如下:

1
2
3
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)