正则表达式提取tom网页内容。http://astro.tom.com/sagittarius.html
写道
package rex.simple;
import java.io.*;
import java.net.*;
import java.util.regex.*;
public class AstroExtractor {
//输出文件位置
private String sorePath="c:\\astro.txt";
//从一个URL下载HTML文本到一个本地字符串
private static String getDocumentAt(String urlString) {
//本地字符串缓冲区
StringBuffer html_text = new StringBuffer();
try {
//根据urlString创建一个指向Web的网络资源
URL url = new URL(urlString);
//创建一个到该网络资源的连接
URLConnection conn = url.openConnection();
//创建输入流
BufferedReader reader = new BufferedReader(new InputStreamReader(
conn.getInputStream()));
String line = null;
//逐行读取文本放到缓冲区
while ((line = reader.readLine()) != null)
html_text.append(line + "\n");
reader.close();
} catch (MalformedURLException e) {
System.out.println("无效的URL: " + urlString);
} catch (IOException e) {
e.printStackTrace();
}
return html_text.toString();
}
//从一个字符串提取信息
public void extractUrl(String url)throws IOException{
//标题
String title = null;
//日期
String days = null;
//详细信息
String detail = null;
//正文
String body = null;
//文件输出流
BufferedWriter bw=null;
try{
bw=new BufferedWriter(new FileWriter(new File(sorePath)));
//获得网页文本内容
String str = AstroExtractor
.getDocumentAt(url);
//创建提取标题和正文的正则表达式
Pattern pt_title = Pattern
.compile(
"<div class=\"astro_title\"><strong>(.*)</strong>(.*)</div>$(.*)<strong>★(.*)<!-- mcol内容区域 结束 -->",
Pattern.MULTILINE | Pattern.DOTALL);
//创建提取星座信息的正则表达式
Pattern pt_constellation = Pattern.compile("<strong>(.*)</strong>(.*)<br />(.*)<strong>(.*)</strong>(.*)<br />(.*)<strong>(.*)</strong>(.*)<br />(.*)" +
"<strong>(.*)</strong>(.*)<br />(.*)<strong>(.*)</strong>(.*)<br />(.*)<strong>(.*)</strong>(.*)<br />",
Pattern. MULTILINE| Pattern.DOTALL);
//创建提取星座运程总结的正则表达式
Pattern pt_summary = Pattern.compile("<br />(.*)<br />(.*)<br />", Pattern.DOTALL);
Matcher mc = pt_title.matcher(str);
while (mc.find()) {
// 提取标题
title = mc.group(1).trim();
// 提取日期
days = mc.group(2).trim();
// 提取详细信息
detail = mc.group(3).trim();
// 提取正文
body = mc.group(4);
//写入标题到输入文件
bw.write(title+"\r\n");
//写入日期到输入文件
bw.write(days+"\r\n");
}
//提取星座基本信息
mc = pt_constellation.matcher(detail);
while (mc.find()) {
int count=mc.groupCount();
for(int i=1;i<= count;i++)
{
int pos = i % 3 ;
String tt = mc.group(i).trim();
//写入星座信息到输入文件
if(pos == 1) {
bw.write( tt );
} else if(pos == 2) {
bw.write( tt +"\r\n");
}
}
}
//提取运程总结信息
mc=pt_summary.matcher(body);
while (mc.find()) {
//写入运程总结到输入文件
bw.write(mc.group(1).trim()+"\r\n");
bw.write(mc.group(2).trim()+"\r\n");
}
}catch(IOException e){
e.printStackTrace();
}catch(PatternSyntaxException e){
System.out.println("正则表达式语法错误");
}catch(IllegalStateException e){
System.out.println("找不到匹配字符串");
}
finally{
if(bw!=null)
bw.close();
}
}
public static void main(String[] args) {
AstroExtractor astroExtractor=new AstroExtractor();
try{
astroExtractor.extractUrl("http://astro.tom.com/sagittarius.html");
//astroExtractor.extractUrl("http://astro.sina.com.cn/sagittarius.html");
}catch(IOException e){
e.printStackTrace();
}
}
}
分享到:
相关推荐
二、XML节点内容提取方法 在Java中,可以使用正则表达式来提取XML节点内容。下面是一个简单的示例: ```java public static List<String> getContext(String html) { List<String> resultList = new ArrayList(); ...
《Jmeter正则表达式提取器的深度解析与应用》 在软件测试和性能测试领域,Apache JMeter 是一款广泛使用的开源工具,尤其在接口测试和Web应用性能测试中扮演着重要角色。其中,正则表达式提取器是Jmeter中的一个...
标题“用正则表达式提取SQL”涉及到的是在编程中如何使用正则表达式来从文本或代码中抓取SQL语句的相关知识。在IT领域,正则表达式(Regular Expression)是一种强大的文本处理工具,它能快速地匹配、查找、替换或者...
而本软件正是把强大的正则功能完美地添加到表格中,让 Excel、WPS 支持正则表达式的搜索、匹配提取、替换、定位等,让数据处理能力进化一个层次! 让 Office Excel、WPS 表格支持正则表达式的免费插件:「Excel ...
本篇将围绕“使用Java正则表达式分析处理日志”这一主题,探讨如何利用Java的正则表达式功能来提取、过滤和操作日志数据。 首先,我们需要理解正则表达式的基本概念。正则表达式(Regular Expression)是一种模式...
excel自定义函数,在指定文本中使用正则表达式提取其中的符合文本并以指定分隔符分隔,如:文本:a1b2c3d4 正则:\d 分隔符:| 结果:1|2|3|4
正则表达式转换工具是专门针对这一需求而设计的,它能帮助用户将输入的内容转换或过滤成符合正则表达式规则的输出表达式。这样的工具在编程、数据分析、文本挖掘等领域有着广泛的应用。 1. **正则表达式基本概念** ...
java实现用正则表达式的方法提取html中的信息,可以提取标题,正文,链接等。经过运行,没问题的
例如,你可以创建一个正则表达式对象,然后使用它来测试字符串是否符合特定模式,或者从字符串中提取匹配的子串。 在实际应用中,使用正则表达式可能涉及到以下步骤: 1. 创建正则表达式:定义你要匹配的模式,例如...
### 正则表达式提取图片 #### 知识点概览 本文主要介绍如何使用正则表达式来从文本中提取图片。正则表达式是一种强大的文本处理工具,被广泛应用于搜索、替换以及数据提取等场景。对于网页开发或者数据分析来说,...
本文实例讲述了python使用正则表达式提取网页URL的方法。分享给大家供大家参考。具体实现方法如下: import re import urllib url=//www.jb51.net s=urllib.urlopen(url).read() ss=s.replace( ,) urls=re.findall...
5. **捕获组**:提取匹配的子串,特别是对于包含括号的正则表达式,可以获取多个匹配部分。 6. **修饰符**:如全局匹配(g)使匹配不局限于第一个出现的位置,忽略大小写(i)等。 “pbregexp”组件可能提供了相应...
在C#编程语言中,正则表达式被广泛应用于数据验证、文本提取、格式转换等多个场景。本项目提供了一个C#编写的正则表达式测试工具,包含完整的源代码,可以帮助开发者调试和测试他们的正则表达式,支持查找和替换功能...
正则表达式汇总
正则表达式类库则为VC++和MFC的开发者提供了对正则表达式功能的支持。 "VC、VC++,MFC 正则表达式类库"指的是在MFC中实现或集成的正则表达式处理模块。这个库通常包含一系列的类和函数,允许程序员编写符合特定模式...
本主题聚焦于利用C#的正则表达式功能来从网页中提取数据,并将其存储到SQL Server 2005数据库。下面将详细阐述这一过程中的关键知识点。 一、正则表达式(Regular Expression) 正则表达式是一种强大的文本处理工具...
"正则表达式必知必会" 正则表达式是一种强大的文本处理工具,广泛应用于各个领域。下面是对正则表达式的详细解释: 正则表达式的用途 正则表达式主要用于处理文本,提供了两大主要功能:查找和替换。查找功能允许...
在本案例中,“易语言正则表达式取网址和名称”指的是使用易语言这一编程环境,结合正则表达式技术来从文本中提取网址(URLs)和相关名称。易语言是中国开发的一款简单易学的编程语言,它为程序员提供了一个直观的...
一个用于正则匹配检查的工具,用于使用正则表达式提取字符串!
C语言正则表达式库是用于在C编程环境中处理和匹配正则表达式的软件库。这个库名为PCRE(Perl Compatible Regular Expressions),正如其名,它与Perl语言中的正则表达式语法高度兼容,提供了丰富的功能和强大的匹配...