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")) ;   }*/

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

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

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

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

32450
来自专栏python成长之路

读取除#开头的行的文件

17440
来自专栏日常分享

网络通信中基于套接字输入流和输出流的创建

  (2)由套接字对象Socket调用getInputStream()或getOutputStream()方法,分别返回具有套接字通信的基础输入流InputSt...

11120
来自专栏lgp20151222

springMVC框架的理解加深,个人的一些想法

写spring-boot整合的时候,有种想看源码的冲动!呸,是钻牛角尖的毛病犯了...

6420
来自专栏程序员宝库

徒手撸框架---实现 Aop

原文:犀利豆的博客(https://www.xilidou.com/2018/01/13/spring-aop/) 上一讲我们讲解了 Spring 的 IoC ...

315120
来自专栏Spark学习技巧

textFile构建RDD的分区及compute计算策略

1,textFile A),第一点,就是输入格式,key,value类型及并行度的意义。 def textFile( path: String, mi...

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

[Spark源码剖析] DAGScheduler提交stage

DAGScheduler通过调用submitStage来提交stage,实现如下:

8220
来自专栏haifeiWu与他朋友们的专栏

Netty源码中对Redis协议的实现

近期一直在做网络协议相关的工作,所以博客也就与之相关的比较多,今天楼主结合 Redis的协议 RESP 看看在 Netty 源码中是如何实现的。

11020
来自专栏技术碎碎念

EL函数以及自定义标签的应用

一、EL函数(调用普通类的静态方法) 编写步骤(自定义EL函数的编写步骤即自定义标签的编写步骤): ①编写一个普通的java类,提供一个静态方法,功能自定...

41680
来自专栏Java3y

JSP第六篇【自定义标签之传统标签】

为什么要使用自定义标签? JSTL标签库只提供了简单的输出等功能,没有实现任何的HTML代码封装,并且某些复杂类型转换,或者逻辑处理的时候,JSTL标签库完成不...

415100

扫码关注云+社区

领取腾讯云代金券