Java正则表达式获取网页所有网址和链接文字
/*获取网址首页的所有网址和链接文字*/
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.net.*;
import java.io.*;
import java.util.regex.*;
/*
根据指定的规则,通过构造正则表达式获取网址
*/
public class Urls
...{
private String startUrl; //开始采集网址
String urlContent;
String ContentArea;
private String strAreaBegin ,strAreaEnd ; //采集区域开始采集字符串和结束采集字符串
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.zuzwn.com/");
myurl.getUrlContent();
myurl.getContentArea();
myurl.getStartUrl("http://www.zuzwn.com/");
myurl.getStringNotInUrl("google");
myurl.Urls();
//System.out.println("startUrl:"+myurl.startUrl);
//System.out.println("urlcontent:"+myurl.urlContent);
//System.out.println("ContentArea:"+myurl.ContentArea);
}
//初始化构造函数 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>]$";
String regex ="<a.*?/a>";
//String regex ="http://.*?>";
Pattern pt=Pattern.compile(regex);
Matcher mt=pt.matcher(ContentArea);
while(mt.find())
...{
System.out.println(mt.group());
i++;
//获取标题
Matcher title=Pattern.compile(">.*?</a>").matcher(mt.group());
while(title.find())
...{
System.out.println("标题:"+title.group().replaceAll(">|</a>",""));
}
//获取网址
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;
}
}
转载于:https://www.cnblogs.com/zuzwn/p/3614978.html
Java正则表达式获取网页所有网址和链接文字相关推荐
- c#正则表达式取出数据库中带html标签的内容,C#用正则表达式 获取网页源代码标签的属性或值...
1.有url获取到网页源代码: using System.Web; using System.IO; using System.Net; private void GetHtmlinfo(string ...
- 如何批量获取网页中的下载链接
tips:下载 chrome json 正则表达式 如何批量获取网页中的下载链接 前言 打开你要下载的网页 二.获取网页的json数据 1.获取网页的源码 2.选取json 3.获取json字符串 4 ...
- 获取网页上没有下载链接的视频音频资源 火狐浏览器插件 Video DownloadHelper
获取网页上没有下载链接的视频音频资源 荔枝上web的音频下载链接没有了,"查看源代码",没有找到蛛丝马迹,它的数据没有以资源的形式放到前台代码中,于是查看浏览器缓存,希望从中发现点 ...
- Java爬虫获取网页表格数据
//Java爬虫获取网页表格数据 public class Pachong implements Runnable { public void run() { String Rpt_date = nu ...
- Java爬虫获取网页视频,音乐,图片等
如何使用Java写爬虫来获取网页视频 方法1对于没有反爬虫机制(不多说直接上代码) @SuppressWarnings("all") public String getVideo( ...
- java正则表达式获取指定两个字符串之间内容
xml解析利用正则表达式获取指定两个字符串之间内容 在遇到解析复杂xml的时候,想到大家所想到的都是利用dom4j作为首发工具,但是当遇到层次很多,较为复杂,我们难道还需要从根节点一层一层的解析下去吗 ...
- java正则 链接_Java正则表达式获取网址和链接文字解析
很久不写正则表达式了,网上看到个面试题关于提取, 各种乱七八糟的解法. 正确的,应该是这样吧: import java.util.regex.Matcher; import java.util.reg ...
- java 获取图片的路径_Java中使用正则表达式获取网页中所有图片的路径
/** * 从HTML源码中提取图片路径,最后以一个 String 类型的 List 返回,如果不包含任何图片,则返回一个 size=0 的List * 需要注意的是,此方法只会提取以下格式的图片:. ...
- java如何获取网页全部内容
URL获取 之前在项目中,遇到这样一个问题.需要读取一个网页的内容,却发现只读取到了网页内容的一部分. 下面是代码: public static void read1(String urlStr) { ...
最新文章
- jsp连接mysql数据库 例子_jsp连接mysql数据库的例子
- listview 滑动以后设置最上面一行为整行展示
- 3. 软件测试的类型
- 无偏方差为什么除以n-1
- 发送带有接缝的活动邀请
- Oracle用 odp.net 时出现 Oracle.DataAccess.Client.OracleConnection的类型初始值设定项引发异常 问题的解决...
- LeetCode 513. 找树左下角的值 思考分析
- 各行业大数据可视化界面参考
- leetcode436. 寻找右区间(二分法)
- 在php 添加时间,在PHP中添加时间
- HDFS-HA-federation的机制和功能组件
- 面试官通过21天步数考察候选人诚意,结果拒了清华生收了三本生
- mysql外键约束_mysql 外键约束
- 共享没有计算机网络连接不上去,苹果usb共享给电脑连接不上怎么办
- proteus仿真+keil——>制作流水灯
- 技术领导力 程序员如何才能带团队 文摘 (三)
- Matrix67的情书 题解 恺撒移位密码
- 计算机平时测试零分,计算机二级最全攻略 就快考试了不看等什么呢!
- php框架tp6自学笔记——pdf文件下载
- SpringBoot整合MybatisPlus实战动态SQL,java分布式架构