php用正则表达抓取网页中文章(网页爬虫:就是一个程序用于在互联网中获取指定规则的数据)
优采云 发布时间: 2022-01-11 10:12php用正则表达抓取网页中文章(网页爬虫:就是一个程序用于在互联网中获取指定规则的数据)
网络爬虫:是用于在互联网上获取特定规则数据的程序。这篇文章主要详细介绍了使用正则表达式实现网络爬虫的思路。有需要的朋友可以参考以下
网络爬虫:是用于在互联网上获取特定规则数据的程序。
想法:
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](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服务器
运行结果:
总结
以上就是对使用正则表达式实现网络爬虫的思路的详细解释。我希望它对你有帮助。如果您有任何问题,请给我留言