Java获取任意http⽹页源代码的⽅法本⽂实例讲述了JAVA获取任意http⽹页源代码。分享给⼤家供⼤家参考,具体如下:
JAVA获取任意http⽹页源代码可实现如下功能:
1. 获取任意http⽹页的代码
2. 获取任意http⽹页去掉HTML标签的代码
Webpage类:
/**
* ⽹页操作相关类
*/
package test;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.URL;
import Matcher;
import 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();
url编码和utf8区别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)
{
}
String();
}
//定义⼀个把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 = Patternpile(regEx_script, Pattern.CASE_INSENSITIVE);
Matcher m_script = p_script.matcher(htmlStr);
htmlStr = placeAll(""); // 过滤script标签
Pattern p_style = Patternpile(regEx_style, Pattern.CASE_INSENSITIVE);
Matcher m_style = p_style.matcher(htmlStr);
htmlStr = placeAll(""); // 过滤style标签
Pattern p_html = Patternpile(regEx_html, Pattern.CASE_INSENSITIVE);
Matcher m_html = p_html.matcher(htmlStr);
htmlStr = placeAll(""); // 过滤html标签
Pattern p_space = Patternpile(regEx_space, Pattern.CASE_INSENSITIVE);
Matcher m_space = p_space.matcher(htmlStr);
htmlStr = placeAll(""); // 过滤空格回车标签
htmlStr = im(); // 返回⽂本字符串
htmlStr = placeAll(" ", "");
htmlStr = htmlStr.substring(0, htmlStr.indexOf("。")+1);
return htmlStr;
}
}
调⽤:
Webpage page=new Webpage();
page.setPageUrl("www.baidu");
String PageSourceWithoutHtml();
System.out.println(code);
PS:这⾥再为⼤家提供2款⾮常⽅便的正则表达式⼯具供⼤家参考使⽤:
更多关于java算法相关内容感兴趣的读者可查看本站专题:《》、《》、《》、《》和《》希望本⽂所述对⼤家java程序设计有所帮助。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。