- 浏览: 28000 次
- 性别:
- 来自: 襄樊
文章分类
最新评论
// 通过指定URL,获取网页上所有的“链接URL”和“链接文字”。
package catch_url; import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.URL; import java.util.regex.Matcher; import java.util.regex.Pattern; public class Urls { private String startUrl; // 开始采集网址 String urlContent; String ContentArea; private String strAreaBegin, strAreaEnd; // 采集区域开始采集字符串和结束采集字符串 @SuppressWarnings("unused") private String stringInUrl, stringNotInUrl; String strContent;// 获得的采集内容 String[] allUrls; // 采集到的所有网址 private String regex; // 采集规则 UrlAndTitle urlAndTitle = new UrlAndTitle(); // 存储网址和标题 public static void main(String[] args) { Urls myurl = new Urls("<body", "/body>"); myurl.getStartUrl("http://www.126.com/"); myurl.getUrlContent(); myurl.getContentArea(); myurl.getStringInUrl("http://www.126.com/"); myurl.getStringNotInUrl("google"); myurl.Urls(); } // 初始化构造函数 strAreaBegin 和strAreaEnd public Urls(String strAreaBegin, String strAreaEnd) { this.strAreaBegin = strAreaBegin; this.strAreaEnd = strAreaEnd; } // public void Urls() { int i = 0; // String regex ="<a // href="?'?http://[a-zA-Z0-9]+\.[a-zA-Z0-9]+\.[a-zA-Z]+/?[\.?[\S|\s]]+[a>]$"; final String regex = "<a.*?/a>"; // String regex ="http://.*?>"; final Pattern pt = Pattern.compile(regex); final Matcher mt = pt.matcher(ContentArea); while (mt.find()) { System.out.println(mt.group()); i++; // 获取标题 final Matcher title = Pattern.compile(">.*?</a>").matcher(mt.group()); while (title.find()) { System.out.println("标题:" + title.group().replaceAll(">|</a>", "")); } // 获取网址 final Matcher myurl = Pattern.compile("href=.*?>").matcher(mt.group()); while (myurl.find()) { System.out.println("网址:" + myurl.group().replaceAll("href=|>", "")); } System.out.println(); } System.out.println("共有" + i + "个符合结果"); } // 获得开始采集网址 public void getStartUrl(String startUrl) { this.startUrl = startUrl; } // 获得网址所在内容; public void getUrlContent() { StringBuffer is = new StringBuffer(); try { URL myUrl = new URL(startUrl); BufferedReader br = new BufferedReader(new InputStreamReader(myUrl .openStream())); String s; while ((s = br.readLine()) != null) { is.append(s); } urlContent = is.toString(); } catch (Exception e) { System.out.println("网址文件未能输出"); e.printStackTrace(); } } // 获得网址所在的匹配区域部分 public void getContentArea() { int pos1 = 0, pos2 = 0; pos1 = urlContent.indexOf(strAreaBegin) + strAreaBegin.length(); pos2 = urlContent.indexOf(strAreaEnd, pos1); ContentArea = urlContent.substring(pos1, pos2); } // 以下两个函数获得网址应该要包含的关键字及不能包含的关键字 // 这里只做初步的实验。后期,保护的关键字及不能包含的关键字应该是不只一个的。 public void getStringInUrl(String stringInUrl) { this.stringInUrl = stringInUrl; } public void getStringNotInUrl(String stringNotInUrl) { this.stringNotInUrl = stringNotInUrl; } // 获取采集规则 // 获取url网址 public void getUrl() { } public String getRegex() { return regex; } class UrlAndTitle { String myURL; String title; } }
发表评论
文章已被作者锁定,不允许评论。
-
liunx基本命令
2011-09-01 11:04 619Liunx基本命令 3、 vi 编辑器的使用 1 ... -
按字符节,截取字符串的长度
2011-08-31 11:08 880package com.ncss.test.yfJunit; ... -
java中导出txt文件公共方法
2011-08-01 10:23 998import java.io.BufferedReader; ... -
junit测试
2011-07-18 10:17 617import org.springframework.cont ... -
创建tomcat的虚拟路径
2011-02-28 17:05 659在tomcat下的conf文件下的server.xml文件中的 ... -
获取文件路径
2011-01-18 11:16 735//获取文件路径 String paths=System. ... -
dtree树形菜单
2010-11-08 12:59 1688dtree.js // Node object funct ... -
但纷纷
2010-10-26 23:15 588的vdffff -
取得两个日期之间的所有日期
2010-10-14 09:05 1068/** * 取得两个日期之间的所有日期 * beg ... -
实现收税
2010-09-15 14:57 652import java.util.*; public ... -
MD5 加密解密
2010-09-14 15:47 722package cn.net.ssd.common.forma ... -
正则表达式的语法
2010-08-05 17:57 641正则表达式由一些普通字符和一些元字符(metacharac ... -
HttpClient 4 - 文件上传
2010-08-04 14:20 1385httpclient上传文件实际上就是模拟一个http的表单提 ... -
所有java中找包地址
2010-08-04 11:33 623所有的java中找包的地址:http://www.jarfin ... -
简单的分页
2010-08-03 15:20 574java中实现分页 -
按时间格式自动增长ID
2010-08-03 15:14 665数据库中的ID自动增长按时间的形式 -
记事本导入mysql数据库的方法
2010-08-03 14:58 1144java中记事本分割导入mysql数据库 -
excel导出公共方法
2010-08-03 14:53 589java中导出excel的公共方法的案例 -
amcharts报表
2010-08-03 14:32 1279java中的报表。amcharts做的。有饼状图、柱状图、折线 ...
相关推荐
java实现用正则表达式的方法提取html中的信息,可以提取标题,正文,链接等。经过运行,没问题的
这个特殊的RegExp对象和所有以字母"s"结尾的字符串都匹配.用RegExp()也可以定义 一个等价的正则表达式,代码如下: var pattern = new RegExp("s$"); 无论是用正则表达式直接量还是用构造函数RegExp(),创建一个...
实例105 使用正则表达式验证电话号码的格式 141 6.2 字符串缓存类StringBuffer 143 实例106 创建字符串缓存类 143 实例107 提取单个字符 144 实例108 给指定字符赋值 145 实例109 插入新的...
常用的解析工具有正则表达式、XPath、Beautiful Soup等。这些工具帮助爬虫定位和提取目标数据,如文本、图片、链接等。 数据存储: 爬虫将提取的数据存储到数据库、文件或其他存储介质中,以备后续分析或展示。常用...
实例105 使用正则表达式验证电话号码的格式 141 6.2 字符串缓存类StringBuffer 143 实例106 创建字符串缓存类 143 实例107 提取单个字符 144 实例108 给指定字符赋值 145 实例109 插入新的字符 146...
实例105 使用正则表达式验证电话号码的格式 141 6.2 字符串缓存类StringBuffer 143 实例106 创建字符串缓存类 143 实例107 提取单个字符 144 实例108 给指定字符赋值 145 实例109 插入新的字符 146 实例110 插入新的...
4.微信的返回的页面其实很多里面是有提示的,比如用哪些正则表达式来获取想要的数据。 5.网上的模拟网页公众号没有实现发送图片和附件,这个实现了图片,附件原理是一样的,都是在上传文件的时候请求上传链接, 然后...
实例105 使用正则表达式验证电话号码的格式 141 6.2 字符串缓存类StringBuffer 143 实例106 创建字符串缓存类 143 实例107 提取单个字符 144 实例108 给指定字符赋值 145 实例109 插入新的字符 146 实例110 插入新的...
实例105 使用正则表达式验证电话号码的格式 141 6.2 字符串缓存类StringBuffer 143 实例106 创建字符串缓存类 143 实例107 提取单个字符 144 实例108 给指定字符赋值 145 实例109 插入新的字符 146 实例110 ...
强大的荧光笔基于状态,正则表达式和纯文本字符串。模式可以相互引用,因此HTML模式具有全功能的CSS和javascript部分。 语法样式 这些模式引用样式的语义层次结构,可以对其进行自定义以匹配您的首选项。 自动...
58、JS正则表达式去除空格类方法 335 59、JS重写CONFIRM把确定修改为是与否 335 60、JS执行EXE可执行文件 336 61、JS读取注册表且执行EXE文件 336 62、JS与VBSCRIPT的结合使用 337 63、IE与火狐获取标签的文本内容...
5.1 具有正则表达式的TextView 5.2 ACTION!CALL!拨打电话 5.3 自制发送短信程序 5.4 自制发送E-mail程序 5.5 自制日历手机数据库 5.6 手机振动的节奏 5.7 图文可视化提醒 5.8 状态栏的图标与文字提醒 5.9 搜索手机...
5.1 具有正则表达式的TextView 5.2 ACTION!CALL!拨打电话 5.3 自制发送短信程序 5.4 自制发送E-mail程序 5.5 自制日历手机数据库 5.6 手机振动的节奏 5.7 图文可视化提醒 5.8 状态栏的图标与文字提醒 5.9 搜索手机...
5.1 具有正则表达式的TextView 5.2 ACTION!CALL!拨打电话 5.3 自制发送短信程序 5.4 自制发送E-mail程序 5.5 自制日历手机数据库 5.6 手机振动的节奏 5.7 图文可视化提醒 5.8 状态栏的图标与文字提醒 5.9 搜索手机...
与Java和Perl不同,你不必把头埋进100多页的文档中努力学习才可以写出一个象样的程序。只要了解一些基本的语法和语言特色,你就可以开始你的PHP编码之旅了。之后你在编码过程中如果遇到了什么麻烦,还可以再去翻阅...
7.5.4. 编译和链接怎样影响MySQL的速度 7.5.5. MySQL如何使用内存 7.5.6. MySQL如何使用DNS 7.6. 磁盘事宜 7.6.1. 使用符号链接 8. 客户端和实用工具程序 8.1. 客户端脚本和实用工具概述 8.2. myisampack:生成压缩...
localUrlTest:非本站域名测试正则表达式 参数值:正则表达式 说明:本参数用来测试某些组件中测试URL是否属于本站域名 备注:v1.1.8新添加 remoteImgSaveUrl:远程图片抓取接收程序URL 参数值:字符串(若不设置不...
7.5.4. 编译和链接怎样影响MySQL的速度 7.5.5. MySQL如何使用内存 7.5.6. MySQL如何使用DNS 7.6. 磁盘事宜 7.6.1. 使用符号链接 8. 客户端和实用工具程序 8.1. 客户端脚本和实用工具概述 8.2. myisampack:生成压缩...
7.5.4. 编译和链接怎样影响MySQL的速度 7.5.5. MySQL如何使用内存 7.5.6. MySQL如何使用DNS 7.6. 磁盘事宜 7.6.1. 使用符号链接 8. 客户端和实用工具程序 8.1. 客户端脚本和实用工具概述 8.2. myisampack:...