本帖最后由 qinfenziqiang 于 2014-10-19 17:34:31 编辑

解决方案 »

  1.   

    看看你的浏览器发出的 HTTP 请求 HEADER 里都有什么,在代码里都加上,尤其是 User-Agent。
      

  2.   

    HTTP 请求由若干 HEADER 和一个 BODY 组成,HEADER 实际上是一个键值对,比如 Accept-Encoding:gzip,deflate,sdch 表示客户端可以接受 BODY 内容使用 gzip 或 deflate 或 sdch 算法压缩,服务器端就根据这个在响应的时候选择算法对 BODY 进行压缩。User-Agent 的用处是告诉服务器客户端是什么类型的,服务器通过这个可以判断客户端是 FireFox 还是 Chrome,是 Windows 还是 Android,从而返回不同的网页内容。比如在手机上访问同样一个网站显示的内容比 PC 上要少很多,从而达到节省流量及更好地在小屏幕上显示的目的。所以你在浏览器看到的网页和 JAVA 代码得到的网页是不一样的。
      

  3.   

    最近刚好在用这个,直接上代码,应该是你要的 URL url = new URL("http://www.baidu.com");
    HttpURLConnection httpConn = (HttpURLConnection)url.openConnection();
    httpConn.setRequestMethod("GET");
            InputStreamReader insr = new InputStreamReader(httpConn.getInputStream(),"utf-8");         
            int respInt = insr.read();
            StringBuffer content = new StringBuffer();        
            while (respInt != -1) {
             content.append((char) respInt);
                //System.out.print((char) respInt); 
                respInt = insr.read(); 
            }
    System.out.println(content);
      

  4.   

    好的,谢谢,我的目的是通过html爬取html上面的一些连接,如果Java返回的html跟浏览器的有区别,那我不是不能用Java爬取信息了???