用Java的模式匹配来提取网页中所需内容
来源:互联网 发布:羽绒枕品牌 知乎 编辑:程序博客网 时间:2024/06/11 02:54
本篇主要以实际例子来说明一下怎么样用java的模式匹配来提取网页中你所需要的内容,比如说你需要提取一个网页中的<title></title>标签内的文字内容该如何做呢?下面我会做一个介绍。介绍之前我先说明一下此系列文章的目的。我们将会持续写一些关于webspider的技术的文章,结合的例子就是我们前一段时间做的一个入门级的爬虫,我们将来也会把这个爬虫整体的共享出来。
好言归正传,进入今天的主题,今天要讲的内容是建立在上一篇基础上的,也就是你需要对上一篇的正则表达式有个了解,至少要能看懂,当然也要对java熟悉。
首先第一个是上面提到的提取<title>标签的内容。先看代码
public synchronized String parseTitle(String context)
{
String result="";
String patWhTitle="<//s*?(title)//s*?>[//s//S]*?<///s*?(title)//s*?>";
String patTitle="</?//s*?(title)//s*?>";
Pattern titlePattern=Pattern.compile(patWhTitle,2);
Matcher titleMatcher=titlePattern.matcher(context);
Pattern titlePattern2=Pattern.compile(patTitle, 2);
while(titleMatcher.find())
{
String title=titleMatcher.group();
Matcher titleMatcher2=titlePattern2.matcher(title);
result+="["+titleMatcher2.replaceAll("")+"]";
}
return result;
}
首先定义两个正则表达式 patWhTitle,这个是要匹配网页中所有<title>标签和标签的内容。patTitle这个正则是只匹配<title>标签。
然后编译匹配等等
本篇所要讲的和上一篇有些不同,多了一步匹配,相信大家都看出来了,这是怎么回事呢?为什么要这么做呢?我结合这个title例子大概讲一下匹配的过程,其他的也都是类似。1、从网页中匹配出所有<title>标签及其内容,e.g<title>myspace</title>。2、从匹配到的string再次匹配出标签。3、然后调用replaceall方法来把标签都替换成“”,只剩下需要的内容。
不知道我是否讲解的清楚了,再贴一个函数来练习下
public synchronized String parseA(String context)
{
String result="";
String patWhA="<[a]//s+?[^>]*?>[^<]+?</[a]//s*?>";
String patA="</?//s*?[a][//s//S]*?>";
Pattern aPattern=Pattern.compile(patWhA,2);
Matcher aMat=aPattern.matcher(context);
Pattern aPattern2=Pattern.compile(patA,2);
while(aMat.find())
{
String a=aMat.group();
Matcher mat=aPattern2.matcher(a);
result+="["+mat.replaceAll("")+"]";
}
return result;
}
这个函数是提取超链接的内容
- 用Java的模式匹配来提取网页中所需内容
- java中使用WebView提取指定网页的HTML内容
- java中使用WebView提取指定网页的HTML内容
- 用java截取网页源代码所需内容
- 利用HtmlParser来提取网页内容
- 如何从字符串中提取所需内容
- java正则表达式来替换文本中匹配正则的内容
- [vb]提取网页中表格内容
- 在提取网页内容时,请问匹配UTF8的全部内容,正则如何匹配 繁体、全角数字、标点 等字符
- sed 提取匹配的字符串内容
- 用正则表达式提取网页上表格的内容
- 启发式提取一个网页的主体内容
- 将网页表格的内容提取出来
- Oracle使用正则表达式regexp_replace将表某列杂乱内容中所含的手机号码提取出来
- 从网页提取内容
- nodejs提取网页内容
- xpath提取网页内容
- Java提取网页中url的正则表达式
- java 中区分字符串中的字符与数字
- java中判断字符串是否为数字的三种方法
- java字符串查找替换
- 近期 安排
- Java正则表达式详解
- 用Java的模式匹配来提取网页中所需内容
- 传智播客-jpa与hibernate(1)-实体和主键生成
- java模式匹配及替换
- linux学习指南
- PHP_CLI版数据库挂马检查工具1.0(开源发布)
- 使用XDC工具创建基于Codec Engine的dm6446双核工程
- ORACLE初始化参数文件详细文档
- 人力资源管理的3P模型在ERP顾问团队的应用探讨
- URLClassLoader加载class到当前线程类加载器