简单模拟网络蜘蛛爬出邮箱地址_菇凉当自强的博客-程序员宅基地

技术标签: java学习  

//本例只是简单模拟网络蜘蛛的功能,从新浪首页搜索出邮箱地址,当然,可以继续用深搜或者广搜搜索出所有的页面,爬出邮箱地址

package cn.hncu.bs;

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URL;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import org.junit.Test;

public class SpiderDemo {
	@Test //从本地爬出邮箱地址
   public void hello() throws Exception{
	   BufferedReader br=new BufferedReader(new FileReader("./net/mail.html"));
	   //正则表达式
	   String mail_reg="\\[email protected]\\w+(\\.\\w+)+";
	   Pattern p=Pattern.compile(mail_reg);
	   String line=null;
	   while((line=br.readLine())!=null){
		   Matcher m=p.matcher(line);
		   while(m.find()){
			   System.out.println(m.group());
		   }
	   }
   }
	
	public static void main(String[] args) {
        //从新浪首页爬出邮箱地址
		URL url;
			try {
				url = new URL("http://www.sina.com");
				InputStream in=url.openStream();
				BufferedReader br=new BufferedReader(new InputStreamReader(in));
				String mail_reg="\\[email protected]\\w+(\\.\\w+)+";
				   Pattern p=Pattern.compile(mail_reg);
				   String line=null;
				   while((line=br.readLine())!=null){
					   Matcher m=p.matcher(line);
					   while(m.find()){
						   System.out.println(m.group());
					   }
				   }
			} catch (Exception e) {
				e.printStackTrace();
			}
 	}
}



版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/liuqiangkaiduyaqian/article/details/52954896

智能推荐

递归判断回文字符串c语言,golang 递归判断回文字符串_Qawedcs的博客-程序员宅基地

判断回文字符串是个比较经典的问题。思路就是拿第一个字符和最一个字符比较,如果不相同就退出,相同的话继续刚刚的过程,直到第一个字符和最后一个字符相遇或者他们的距离为1时。说明他们是回文字符串。下面的代码会忽略空白字符 如"1 1 2 1"会认为是回文字符串。golangpackagemainimport("fmt""os""strings""unicode/utf8")funcdoPal...

用户故事 | 李兆龙:博观而约取,厚积而薄发_李兆龙的博客的博客-程序员宅基地

【文章首发于 极客时间:分布式数据库30讲】感谢易家成前辈审稿 李兆龙:博观而约取,厚积而薄发你好,我叫李兆龙,来自西安邮电大学,是一个软件工程专业的大三学生。很高兴有机会,跟你分享我学习《分布式数据库 30 讲》的经历和心得。为什么要学习这个专栏故事还得从大二的寒假说起。2020 年是特殊的一年,因为疫情的原因,很多大学生其实都是在家度过第二个学期的。这对我来说,既是一个坏消息,也是一个好消息。我说它是坏消息,是因为在家度过了大学八分之一的宝贵时光,这确实是让人觉得可惜的一件事情,毕竟在学.

黑马程序员-高新技术(内省,注解)_a78926635的博客-程序员宅基地

------- android培训、java培训、期待与您交流! ----------内省(javaBean)JavaBean是一种特殊的Java类,主要用于传递数据信息,这种java类中的方法主要用于访问私有的字段,且方法名符合某种命名规则。如果要在两个模块之间传递多个信息,可以将这些信息封装到一个JavaBean中,这种JavaBean的实例对象通常称之为值对象(Value

百度地图按行政区、县划分轮廓界限_Heartsuit的博客-程序员宅基地

背景在物联网行业,用户、决策者通常需要直观地看到不同区域、地点处的设备部署情况,便于了解整体分布。通过在数字地图上动态划分各区、县的边界,同时显示每个区域的设备数量,可实现这一需求。其实,这种技术已经很成熟,并在各大找房网站中得到广泛应用。这里列出几个参考网站,随便感受下:悟空找房链家网爱屋吉屋安居客巴乐兔基本上就是根据地图(高德、百度)的不同放大级别,分别显示不同的覆...

python测试框架untest_python自动化测试三部曲之unittest框架_weixin_39972519的博客-程序员宅基地

终于等到十一,有时间写博客了,准备利用十一这几天的假期把这个系列的博客写完该系列文章本人准备写三篇博客第一篇:介绍python自动化测试框架unittest第二篇:介绍django框架+request库实现接口测试第三篇:介绍利用Jenkins实现持续集成今天进入第一篇,unittest框架介绍一、unittest简述unittest是python语言的单元测试框架,在python的官方文档中,对...

STM32CUBEIDE安装错误,弹窗Error launching installer_DINGDING_GO的博客-程序员宅基地_stm32cubeide安装不了

先说解决方法,把安装文件复制到某盘的根目录下或者此安装文件路径中不能有汉字,在尝试了2次安装失败的情况下,猜测到ST的软件工程师可能暗藏的杀机。哈哈。顺便贴一下最新版1.2.0的下载地址(https://www.st.com/content/ccc/resource/technical/software/sw_development_suite/group0/f9/09/01/00/c3/f9...

随便推点

android 圆形单选框,Android UI控件详解-RadioGroup和RadioButton(单选框)_向向姐姐的博客-程序员宅基地

package com.bdqn.radiobutton;import android.os.Bundle;import android.app.Activity;import android.widget.RadioGroup;import android.widget.RadioGroup.OnCheckedChangeListener;import android.widget.Toast;...

java语言就业方向_四大就业方向彻底解决你学习Java语言编程的后顾之忧-生活感悟与随笔 -亦是美网络..._weixin_39957068的博客-程序员宅基地

前面的文章中已经给大家介绍了关于Java编程语言的优势、特点以及就业前景等内容,大家之所以这么热衷于Java编程学习,不仅是因为Java是编程市场上最为广泛流行的语言,大家更关心的是学习了Java编程语言之后,自己的就业方向究竟如何,具体涉及到哪些行业,其实亦是美网络小编在之前的文章介绍过,今天再给大家分享一下Java的四大就业方向,彻底解决你学习Java语言编程的后顾之忧。学习Java编程之就业...

【转】DICOM入门(一)——语法_sinolover的博客-程序员宅基地_dicom传输语法

转自:https://www.jianshu.com/p/5db8933a25a4作者:我住的城市没有福合埕1.什么是DICOMDICOM(Digital Imaging and Communications in Medicine)即医学数字成像和传输协议,是用医疗影像(CT 核磁共振 DR CR 超声等)数据传输,存储,查询和显示的协议总和。2.数据内容DICOM数据由图像和病人、影像设备等相关数据组成的,比如病人姓名、年龄、生日性别等等。3.VR一个DICOM文件类似一个类

Tinker热修复完整使用讲解_zhuxingchong的博客-程序员宅基地

腾讯官网介绍:http://www.tinkerpatch.com/Docs/intro腾讯github源码:https://github.com/Tencent/tinker为什么选择tinker? Tinker QZone AndFix Robust 类替换 yes yes no no So替换 yes ...

Vue 中使用jquery: Cannot find name ‘$‘. Did you mean the instance member ‘this.$‘?_我看刑的博客-程序员宅基地

报错原因在vue + ts项目中使用 jquery 全局注册后 没有在 ts 声明文件中添加jquery声明报错内容:Cannot find name '$'. Do you need to install type definitions for jQuery? Try 'npm i @types/jquery'Cannot find name '$'. Did you mean the instance member 'this.$'?vue 使用 jquery 全局注册 + 声明安装j

Java核心技术之stream详解+Java8及以后的新特性_小明java问道之路的博客-程序员宅基地

如何更好的使用Lambda表达式,优雅的使用Stream操作数据的切片、筛选、过滤,以及在大数据量下归类与计算利器Map/Reduce

推荐文章

热门文章

相关标签