Java获取任意http网页源代码的方法
程序员文章站
2024-03-02 23:18:16
本文实例讲述了java获取任意http网页源代码。分享给大家供大家参考,具体如下:
java获取任意http网页源代码可实现如下功能:
1. 获取任意http网页的代码...
本文实例讲述了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);
ps:这里再为大家提供2款非常方便的正则表达式工具供大家参考使用:
javascript正则表达式在线测试工具:
正则表达式在线生成工具:
更多关于java算法相关内容感兴趣的读者可查看本站专题:《java正则表达式技巧大全》、《java数据结构与算法教程》、《java操作dom节点技巧总结》、《java文件与目录操作技巧汇总》和《java缓存操作技巧汇总》
希望本文所述对大家java程序设计有所帮助。