php用正则表达抓取网页中文章(网页爬虫:就是一个部署一个1.html网页的思路和思路)
优采云 发布时间: 2022-01-09 06:06php用正则表达抓取网页中文章(网页爬虫:就是一个部署一个1.html网页的思路和思路)
网络爬虫:是用于在互联网上获取特定规则数据的程序。
想法:
1.为了模拟一个网络爬虫,我们现在可以在我们的 tomcat 服务器上部署一个 1.html 网页。(部署步骤:在tomcat目录的webapps目录的ROOTS目录下新建1.html。使用notepad++编辑,编辑内容为:
)
2.使用 URL 连接网页
3.获取读取网页内容的输入流
4.创建正则规则,因为这里我们是抓取网页中的邮箱信息,所以创建一个匹配邮箱的正则表达式:String regex="\w+@\w+(\.\w+)+ ";
5.将提取的数据放入一个集合中。
代码:
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/*
* 网页爬虫:就是一个程序用于在互联网中获取指定规则的数据
*
*
*/
public class RegexDemo {
public static void main(String[] args) throws Exception {
List list=getMailByWeb();
for(String str:list){
System.out.println(str);
}
}
private static List getMailByWeb() throws Exception {
//1.与网页建立联系。使用URL
String path="http://localhost:8080//1.html";//后面写双斜杠是用于转义
URL url=new URL(path);
//2.获取输入流
InputStream is=url.openStream();
//加缓冲
BufferedReader br=new BufferedReader(new InputStreamReader(is));
//3.提取符合邮箱的数据
String regex="\\w+@\\w+(\\.\\w+)+";
//进行匹配
//将正则规则封装成对象
Pattern p=Pattern.compile(regex);
//将提取到的数据放到一个集合中
List list=new ArrayList();
String line=null;
while((line=br.readLine())!=null){
//匹配器
Matcher m=p.matcher(line);
while(m.find()){
//3.将符合规则的数据存储到集合中
list.add(m.group());
}
}
return list;
}
}
注意:执行前需要启动tomcat服务器
运行结果:
总结
以上就是小编介绍的使用正则表达式实现网络爬虫的思路的详细讲解。我希望它对你有帮助。有任何问题请给我留言,小编会及时回复你的。还要感谢大家对脚本之家网站的支持!