java获取网页源代码

 	public static String getHtmlContent(URL url, String encode) {
    StringBuffer contentBuffer = new StringBuffer(); 
 	   int responseCode = -1;
    HttpURLConnection con = null;
    try {
     con = (HttpURLConnection) url.openConnection();
     con.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");// IE代理进行下载
     con.setConnectTimeout(60000);
     con.setReadTimeout(60000);
     // 获得网页返回信息码
     responseCode = con.getResponseCode();
     if (responseCode == -1) {
      String re = url.toString() + " : connection is failure...";
      con.disconnect();
      return re;
     }
     if (responseCode >= 400) // 请求失败
     {
      String re = "请求失败:get response code: " + responseCode;
      con.disconnect();
      return re;
     } 
 	    InputStream inStr = con.getInputStream();
     InputStreamReader istreamReader = new InputStreamReader(inStr, encode);
     BufferedReader buffStr = new BufferedReader(istreamReader); 
 	    String str = null;
     while ((str = buffStr.readLine()) != null)
      contentBuffer.append(str);
     inStr.close();
    } catch (IOException e) {
     e.printStackTrace();
     contentBuffer = null;
     System.out.println("error: " + url.toString());
    } finally {
     con.disconnect();
    }
    return contentBuffer.toString();
   } 
 	  public static String getHtmlContent(String url, String encode) {
    if (!url.toLowerCase().startsWith("http://")) {
     url = "http://" + url;
    }
    try {
     URL rUrl = new URL(url);
     return getHtmlContent(rUrl, encode);
    } catch (Exception e) {
     e.printStackTrace();
     return "网址错误!";
    }
   }
   //测试
   /*public static void main(String argsp[]){
    System.out.println(getHtmlContent("www.ilkhome.cn","utf-8")) ;
 
   }*/ 

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏码匠的流水账

聊聊sentinel的SimpleHttpCommandCenter

sentinel-transport-simple-http-0.1.1-sources.jar!/com/alibaba/csp/sentinel/trans...

10010
来自专栏python成长之路

读取除#开头的行的文件

17040
来自专栏Hongten

hadoop2-MapReduce详解

本文是对Hadoop2.2.0版本的MapReduce进行详细讲解。请大家要注意版本,因为Hadoop的不同版本,源码可能是不同的。

13620
来自专栏GIS讲堂

shape文件上传与展示

15320
来自专栏Java帮帮-微信公众号-技术文章全总结

Java面试系列17-编程题-读取服务器字符、实现序列化、计数器、1000阶乘、n出列问题等

一,Java的通信编程,编程题(或问答),用JAVA SOCKET编程,读服务器几个字符,再写入本地显示? Server端程序: package test;...

48280
来自专栏Golang语言社区

io.Writer 解析

简介 io.Writer 跟 io.Reader 一样,都是 Interface 类型,功能非常强大,在任何需要写入数据,处理数据流的地方,我们都应该尽可能使用...

404120
来自专栏牛肉圆粉不加葱

[Spark源码剖析] DAGScheduler划分stage划分stage源码剖析

在DAGScheduler内部通过post一个JobSubmitted事件来触发Job的提交

10230
来自专栏函数式编程语言及工具

Akka(15): 持久化模式:AtLeastOnceDelivery-消息保证送达模式

  消息保证送达是指消息发送方保证在任何情况下都会至少一次确定的消息送达。AtleastOnceDelivery是一个独立的trait,主要作用是对不确定已送达...

31850
来自专栏Spark生态圈

[spark] DAGScheduler 提交stage源码解析

DAGScheduler在划分完Stage后([spark] DAGScheduler划分stage源码解析 ),将会通过submitStage(finalSt...

12230
来自专栏WindCoder

java基于SSM的Quartz计划任务配置

想找下Quartz的资料看下,某度,随之眼瞎,你们copy就算了,就不能用心点么,连个代码高亮都不忍心加,实在没心情看下去,但还是要忍一下,待我整理完整,再也不...

34810

扫码关注云+社区

领取腾讯云代金券