您好,欢迎访问一九零五行业门户网

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

这篇文章主要介绍了java获取任意http网页源代码的方法,可实现获取网页代码以及去除html标签的代码功能,涉及java正则操作相关实现技巧,需要的朋友可以参考下
本文实例讲述了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获取任意http网页源代码的方法分享的详细内容。
其它类似信息

推荐信息