首页 > 开发 > Java > 正文

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

2024-07-13 10:12:10
字体:
来源:转载
供稿:网友

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

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

1. 获取任意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;/** * @author winddack * */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(" ", "");    htmlStr = htmlStr.substring(0, htmlStr.indexOf("。")+1);    return htmlStr;  }}

调用:

Webpage page=new Webpage();page.setPageUrl("http://www.baidu.com");String code=page.getPageSourceWithoutHtml();System.out.println(code);

 

希望本文所述对大家java程序设计有所帮助。


注:相关教程知识阅读请移步到JAVA教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表