文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Java获取任意http网页源代码的方法

2023-05-31 02:32

关注

本文实例讲述了JAVA获取任意http网页源代码。分享给大家供大家参考,具体如下:

JAVA获取任意http网页源代码可实现如下功能:

获取任意http网页的代码
2. 获取任意http网页去掉HTML标签的代码

Webpage类:

package test;import java.io.BufferedReader;import java.io.InputStreamReader;import java.net.URL;import java.util.regex.Matcher;import java.util.regex.Pattern;public class Webpage {  private String pageUrl;//定义需要操作的网页地址  private String pageEncode="UTF8";//定义需要操作的网页的编码  public String getPageUrl() {    return pageUrl;  }  public void setPageUrl(String pageUrl) {    this.pageUrl = pageUrl;  }  public String getPageEncode() {    return pageEncode;  }  public void setPageEncode(String pageEncode) {    this.pageEncode = pageEncode;  }  //定义取源码的方法  public String getPageSource()  {    StringBuffer sb = new StringBuffer();    try {      //构建一URL对象      URL url = new URL(pageUrl);      //使用openStream得到一输入流并由此构造一个BufferedReader对象      BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream(), pageEncode));      String line;      //读取www资源      while ((line = in.readLine()) != null)      {        sb.append(line);      }      in.close();    }    catch (Exception ex)    {      System.err.println(ex);    }    return sb.toString();  }  //定义一个把HTML标签删除过的源码的方法  public String getPageSourceWithoutHtml()  {    final String regEx_script = "<script[^>]*?>[\\s\\S]*?<\\/script>"; // 定义script的正则表达式    final String regEx_style = "<style[^>]*?>[\\s\\S]*?<\\/style>"; // 定义style的正则表达式    final String regEx_html = "<[^>]+>"; // 定义HTML标签的正则表达式    final String regEx_space = "\\s*|\t|\r|\n";//定义空格回车换行符    String htmlStr = getPageSource();//获取未处理过的源码    Pattern p_script = Pattern.compile(regEx_script, Pattern.CASE_INSENSITIVE);    Matcher m_script = p_script.matcher(htmlStr);    htmlStr = m_script.replaceAll(""); // 过滤script标签    Pattern p_style = Pattern.compile(regEx_style, Pattern.CASE_INSENSITIVE);    Matcher m_style = p_style.matcher(htmlStr);    htmlStr = m_style.replaceAll(""); // 过滤style标签    Pattern p_html = Pattern.compile(regEx_html, Pattern.CASE_INSENSITIVE);    Matcher m_html = p_html.matcher(htmlStr);    htmlStr = m_html.replaceAll(""); // 过滤html标签    Pattern p_space = Pattern.compile(regEx_space, Pattern.CASE_INSENSITIVE);    Matcher m_space = p_space.matcher(htmlStr);    htmlStr = m_space.replaceAll(""); // 过滤空格回车标签    htmlStr = htmlStr.trim(); // 返回文本字符串    htmlStr = htmlStr.replaceAll("&nbsp;", "");    htmlStr = htmlStr.substring(0, htmlStr.indexOf("。")+1);    return htmlStr;  }}

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 资料下载
  • 历年真题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯