开发过程中,用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)