java 爬虫详解及简单实例

发布时间 - 2026-01-11 01:15:41    点击率:

Java爬虫

一、代码

爬虫的实质就是打开网页源代码进行匹配查找,然后获取查找到的结果。

打开网页:

URL url = new URL(http://www.cnblogs.com/Renyi-Fan/p/6896901.html);

读取网页内容:

BufferedReader bufr = new BufferedReader(new InputStreamReader(url.openStream()));

正则表达式进行匹配:

tring mail_regex = "\\w+@\\w+(\\.\\w+)+";

储存结果:

List<String> list = new ArrayList<String>();

/*
* 获取
* 将正则规则进行对象的封装。
* Pattern p = Pattern.compile("a*b");
* //通过正则对象的matcher方法字符串相关联。获取要对字符串操作的匹配器对象Matcher .
* Matcher m = p.matcher("aaaaab");
* //通过Matcher匹配器对象的方法对字符串进行操作。
* boolean b = m.matches();
*/

import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
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 Spider {

  public static void main(String[] args) throws IOException {
//    List<String> list = getMails();
//    for(String mail : list){
//      System.out.println(mail);
//    }
  
    List<String> list = getMailsByWeb();
    for(String mail : list){
      System.out.println(mail);
    }
  }

  public static List<String> getMailsByWeb() throws IOException{
    //1,读取源文件。
    //URL url = new URL("http://192.168.1.100:8080/myweb/mail.html");
    //URL url = new URL("http://localhost:8080/SecondWeb/index.jsp");
    URL url = new URL("http://www.cnblogs.com/Renyi-Fan/p/6896901.html");

    BufferedReader bufr = new BufferedReader(new InputStreamReader(url.openStream()));


    //2,对读取的数据进行规则的匹配。从中获取符合规则的数据.
    String mail_regex = "\\w+@\\w+(\\.\\w+)+";

    List<String> list = new ArrayList<String>();

    Pattern p = Pattern.compile(mail_regex);
    String line = null;

    while((line=bufr.readLine())!=null){

      Matcher m = p.matcher(line);
      while(m.find()){
        //3,将符合规则的数据存储到集合中。
        list.add(m.group());
      }

    }
    return list;
  }

  public static List<String> getMails() throws IOException{
    //1,读取源文件。
    BufferedReader bufr = new BufferedReader(new FileReader("c:\\mail.html"));


    //2,对读取的数据进行规则的匹配。从中获取符合规则的数据.
    String mail_regex = "\\w+@\\w+(\\.\\w+)+";

    List<String> list = new ArrayList<String>();

    Pattern p = Pattern.compile(mail_regex);
    String line = null;

    while((line=bufr.readLine())!=null){

      Matcher m = p.matcher(line);
      while(m.find()){
        //3,将符合规则的数据存储到集合中。
        list.add(m.group());
      }

    }
    return list;
  }
}

二、运行结果

abc1@sina.com.cn
1@1.1

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


# java  # 爬虫详解  # 爬虫  # Java 网络爬虫基础知识入门解析  # JAVA使用HtmlUnit爬虫工具模拟登陆CSDN案例  # Java实现的爬虫抓取图片并保存操作示例  # java实现爬虫爬网站图片的实例代码  # JAVA爬虫实现自动登录淘宝  # java实现一个简单的网络爬虫代码示例  # Java爬虫Jsoup+httpclient获取动态生成的数据  # Java 爬虫如何爬取需要登录的网站  # 数据存储  # 打开网页  # 希望能  # 相关联  # 要对  # 谢谢大家  # 源代码  # 正则表达式  # lt  # String  # gt  # List  # tring  # openStream  # mail_regex  # Matcher 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 🚀拖拽式CMS建站能否实现高效与个性化并存?  Laravel的契約(Contracts)是什么_深入理解Laravel Contracts与依赖倒置  免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?  如何在建站之星绑定自定义域名?  b2c电商网站制作流程,b2c水平综合的电商平台?  如何注册花生壳免费域名并搭建个人网站?  Laravel如何使用Seeder填充数据_Laravel模型工厂Factory批量生成测试数据【方法】  Laravel如何实现一对一模型关联?(Eloquent示例)  Laravel如何使用Facades(门面)及其工作原理_Laravel门面模式与底层机制  CSS3怎么给轮播图加过渡动画_transition加transform实现【技巧】  Python并发异常传播_错误处理解析【教程】  南京网站制作费用,南京远驱官方网站?  如何快速搭建高效可靠的建站解决方案?  矢量图网站制作软件,用千图网的一张矢量图做公司app首页,该网站并未说明版权等问题,这样做算不算侵权?应该如何解决?  如何在建站主机中优化服务器配置?  进行网站优化必须要坚持的四大原则  Win11搜索不到蓝牙耳机怎么办 Win11蓝牙驱动更新修复【详解】  网站建设整体流程解析,建站其实很容易!  详解Nginx + Tomcat 反向代理 如何在高效的在一台服务器部署多个站点  使用豆包 AI 辅助进行简单网页 HTML 结构设计  免费的流程图制作网站有哪些,2025年教师初级职称申报网上流程?  HTML5空格和margin有啥区别_空格与外边距的使用场景【说明】  如何用免费手机建站系统零基础打造专业网站?  免费网站制作appp,免费制作app哪个平台好?  详解ASP.NET 生成二维码实例(采用ThoughtWorks.QRCode和QrCode.Net两种方式)  深圳网站制作培训,深圳哪些招聘网站比较好?  如何用VPS主机快速搭建个人网站?  Laravel Eloquent访问器与修改器是什么_Laravel Accessors & Mutators数据处理技巧  php做exe能调用系统命令吗_执行cmd指令实现方式【详解】  bootstrap日历插件datetimepicker使用方法  LinuxShell函数封装方法_脚本复用设计思路【教程】  Laravel怎么上传文件_Laravel图片上传及存储配置  如何在服务器上三步完成建站并提升流量?  手机钓鱼网站怎么制作视频,怎样拦截钓鱼网站。怎么办?  怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?  Laravel如何发送邮件_Laravel Mailables构建与发送邮件的简明教程  如何自定义建站之星网站的导航菜单样式?  Laravel Pest测试框架怎么用_从PHPUnit转向Pest的Laravel测试教程  如何在万网主机上快速搭建网站?  如何快速生成凡客建站的专业级图册?  如何在宝塔面板创建新站点?  Laravel如何生成PDF或Excel文件_Laravel文档导出工具与使用教程  Laravel如何使用缓存系统提升性能_Laravel缓存驱动和应用优化方案  如何在 Telegram Web View(iOS)中防止键盘遮挡底部输入框  如何用虚拟主机快速搭建网站?详细步骤解析  JavaScript如何实现路由_前端路由原理是什么  如何用腾讯建站主机快速创建免费网站?  如何在云虚拟主机上快速搭建个人网站?  JavaScript如何实现倒计时_时间函数如何精确控制  如何彻底卸载建站之星软件?