经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 其他 » 正则表达式 » 查看文章
使用正则表达式实现网页爬虫的思路详解
来源:jb51  时间:2018/12/10 9:20:49  对本文有异议

网页爬虫:就是一个程序用于在互联网中获取指定规则的数据。

思路:

1.为模拟网页爬虫,我们可以现在我们的tomcat服务器端部署一个1.html网页。(部署的步骤:在tomcat目录的webapps目录的ROOTS目录下新建一个1.html。使用notepad++进行编辑,编辑内容为:

在这里插入图片描述

2.使用URL与网页建立联系
3.获取输入流,用于读取网页中的内容
4.建立正则规则,因为这里我们是爬去网页中的邮箱信息,所以建立匹配 邮箱的正则表达式:String regex="\w+@\w+(\.\w+)+";
5.将提取到的数据放到集合中。

代码:

  1. import java.io.BufferedReader;
  2. import java.io.InputStream;
  3. import java.io.InputStreamReader;
  4. import java.net.URL;
  5. import java.util.ArrayList;
  6. import java.util.List;
  7. import java.util.regex.Matcher;
  8. import java.util.regex.Pattern;
  9. /*
  10. * 网页爬虫:就是一个程序用于在互联网中获取指定规则的数据
  11. *
  12. *
  13. */
  14. public class RegexDemo {
  15. public static void main(String[] args) throws Exception {
  16. List<String> list=getMailByWeb();
  17. for(String str:list){
  18. System.out.println(str);
  19. }
  20. }
  21. private static List<String> getMailByWeb() throws Exception {
  22. //1.与网页建立联系。使用URL
  23. String path="http://localhost:8080//1.html";//后面写双斜杠是用于转义
  24. URL url=new URL(path);
  25. //2.获取输入流
  26. InputStream is=url.openStream();
  27. //加缓冲
  28. BufferedReader br=new BufferedReader(new InputStreamReader(is));
  29. //3.提取符合邮箱的数据
  30. String regex="\\w+@\\w+(\\.\\w+)+";
  31. //进行匹配
  32. //将正则规则封装成对象
  33. Pattern p=Pattern.compile(regex);
  34. //将提取到的数据放到一个集合中
  35. List<String> list=new ArrayList<String>();
  36. String line=null;
  37. while((line=br.readLine())!=null){
  38. //匹配器
  39. Matcher m=p.matcher(line);
  40. while(m.find()){
  41. //3.将符合规则的数据存储到集合中
  42. list.add(m.group());
  43. }
  44. }
  45. return list;
  46. }
  47. }

注意:在执行前需要先开启tomcat服务器

运行结果:

在这里插入图片描述

总结

以上所述是小编给大家介绍的使用正则表达式实现网页爬虫的思路详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对w3xue网站的支持!

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号