php用正则表达抓取网页中文章(网页爬虫:就是一个程序用于在互联网中获取指定规则的数据)

优采云 发布时间: 2022-01-11 10:12

  php用正则表达抓取网页中文章(网页爬虫:就是一个程序用于在互联网中获取指定规则的数据)

  网络爬虫:是用于在互联网上获取特定规则数据的程序。这篇文章主要详细介绍了使用正则表达式实现网络爬虫的思路。有需要的朋友可以参考以下

  网络爬虫:是用于在互联网上获取特定规则数据的程序。

  想法:

  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服务器

  运行结果:

  

  总结

  以上就是对使用正则表达式实现网络爬虫的思路的详细解释。我希望它对你有帮助。如果您有任何问题,请给我留言

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线