java使用正则抓取网页邮箱_java

使用正则抓捕网上邮箱

这就是我们需要抓捕的网站。

实现思路:

1、使用java.net.URL对象,绑定网络上某一个网页的地址
2、通过java.net.URL对象的openConnection()方法获得一个HttpConnection对象
3、通过HttpConnection对象的getInputStream()方法获得该网络文件的输入流对象InputStream
4、循环读取流中的每一行数据,并由Pattern对象编译的正则表达式区配每一行字符,取得email地址

下面是我们的代码:

package cn.bdqn;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
//和网络相关的操作
import java.net.URL;
import java.net.URLConnection;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * 正则抓取邮箱
 * @author happy
 *
 */
public class Test {
 public static void main(String[] args) throws IOException {
  //1.1 创建一个url对象
  URL url = new URL("https://www.douban.com/group/topic/8845032/");
  //1.2 打开连接
  URLConnection conn = url.openConnection();
  //1.3 设置连接网络超时时间 单位为毫秒
  conn.setConnectTimeout(1000 * 10);
  //1.4 通过流 操作读取指定网络地址中的文件
  BufferedReader bufr = new BufferedReader(new InputStreamReader(conn.getInputStream()));
  String line = null;
  //1.5 匹配email的正则
  String regex = "[a-zA-Z0-9_-]+@\\w+\\.[a-z]+(\\.[a-z]+)?";
  //1.6 使用模式的compile()方法生成模式对象
  Pattern p = Pattern.compile(regex);
  //1.
  while((line = bufr.readLine()) != null) {
   Matcher m = p.matcher(line);
   while(m.find()) {
    System.out.println(m.group());// 获得匹配的email
   }
  }
 }
}

这里主要是利用正则来匹配邮箱:

String regex = "[a-zA-Z0-9_-]+@\\w+\\.[a-z]+(\\.[a-z]+)?";

[a-zA-Z0-9_-]只能包含字母、数字、下划线、减号,”+ ”的话就是匹配[a-zA-Z0-9_-]一次或多次,@后可以出现任何非单字符等价于[^a-zA-Z0-9_],他可以重复出现一次或多次,结束后必须要有\.是给.做转义的,然后点后可以出现a到z之间的任意字符。

捕获的结果如下:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索java抓取网页邮箱
java正则网页邮箱
正则表达式 网页抓取、php 正则抓取网页内容、正则抓取网页、tp 抓取网页数据正则、java 正则抓取,以便于您获取更多的相关知识。

时间: 2024-11-05 12:34:13

java使用正则抓取网页邮箱_java的相关文章

java代码抓取网页邮箱的实现方法_java

实现思路: 1.使用java.net.URL对象,绑定网络上某一个网页的地址 2.通过java.net.URL对象的openConnection()方法获得一个HttpConnection对象 3.通过HttpConnection对象的getInputStream()方法获得该网络文件的输入流对象InputStream 4.循环读取流中的每一行数据,并由Pattern对象编译的正则表达式区配每一行字符,取得email地址 package cn.sdhzzl; import java.io.Buf

采集-Java HTTP Client 抓取网页,这个网页无论用什么编码都是乱码?

问题描述 Java HTTP Client 抓取网页,这个网页无论用什么编码都是乱码? http://www.licai.com/xuetang/CiDian.aspx?dj=1&type=&page=1 client.executeMethod(get); // String statusText = get.getStatusText(); //System.out.println("Test.main():--->" + statusText); Syste

详解JAVA抓取网页的图片,JAVA利用正则表达式抓取网站图片_java

利用Java抓取网页上的所有图片: 用两个正则表达式: 1.匹配html中img标签的正则:<img.*src=(.*?)[^>]*?> 2.匹配img标签中得src中http路径的正则:http:\"?(.*?)(\"|>|\\s+) 实现: package org.swinglife.main; import java.io.File; import java.io.FileOutputStream; import java.io.InputStream;

关于java 使用 socket 抓取网页的问题。

问题描述 学校布置了一个大作业,是用javasocket做一个简单的浏览器,需要自己抓取HTML代码然后自己去解析HTML的标签,在做的过程中需要用GET的方法去发送HTTPHEADER,然后得到响应,现在有几个问题:1.有些是HTTP1.0有些是HTTP1.1这个头文件怎么设置才能得到正确的回应2,我在尝试链接GOOGLE的时候,返回的是302FOUND,我输入的地址是www.google.com,期中返回的头文件里有个LOCATION:www.google.co.uk,然后我直接输入www.

PHP怎样用正则抓取页面中的网址_php技巧

前言 链接也就是超级链接,是从一个元素(文字.图片.视频等)链接到另一个元素(文字.图片.视频等).网页中的链接一般有三种,一种是绝对URL超链接,也就是一个页面的完整路径:另一种是相对URL超链接,一般都链接到同一网站的其他页面:还有一种是页面内的超链接,这种一般链接到同一页面内的其他位置. 搞清楚了链接的种类,就知道要抓链接,主要还是绝对URL超链接和相对URL超链接.要写出正确的正则表达式,就必须要了解我们查找的对象的模式. 先说绝对链接,也叫作URL(Uniform Resource L

php结合正则批量抓取网页中邮箱地址

  php如何抓取网页中邮箱地址,下面我就给大家分享一个用php抓取网页中电子邮箱的实例. ? 1 2 3 4 5 6 7 8 9 10 11 12 13 <?php $url='http://www.3lian.net'; //要采集的网址 $content=file_get_contents($url); //echo $content; function getEmail($str) { //$pattern = "/([a-z0-9]*[-_.]?[a-z0-9]+)*@([a-z

html-如何用java抓取网页隐藏音频链接

问题描述 如何用java抓取网页隐藏音频链接 我想用java抓取荔枝FM网站上所有的音频文件,但是直接查看网页源码发现找不到页面的音频链接http://www.lizhi.fm/#/25734/20075765977745926,但是我用谷歌的Developer Tools能找到这个链接http://cdn.lizhi.fm/audio/2015/05/16/20075765977745926_hd.mp3,我有点不知道怎么搞了,求帮忙看看什么情况 解决方案 搜索这个页面的data-url 解决

Java爬虫实战抓取一个网站上的全部链接_java

前言:写这篇文章之前,主要是我看了几篇类似的爬虫写法,有的是用的队列来写,感觉不是很直观,还有的只有一个请求然后进行页面解析,根本就没有自动爬起来这也叫爬虫?因此我结合自己的思路写了一下简单的爬虫. 一 算法简介 程序在思路上采用了广度优先算法,对未遍历过的链接逐次发起GET请求,然后对返回来的页面用正则表达式进行解析,取出其中未被发现的新链接,加入集合中,待下一次循环时遍历. 具体实现上使用了Map<String, Boolean>,键值对分别是链接和是否被遍历标志.程序中使用了两个Map集

Java正则表达式(一)、抓取网页email地址实例

实现思路: 1.使用java.net.URL对象,绑定网络上某一个网页的地址 2.通过java.net.URL对象的openConnection()方法获得一个HttpConnection对象 3.通过HttpConnection对象的getInputStream()方法获得该网络文件的输入流对象InputStream 4.循环读取流中的每一行数据,并由Pattern对象编译的正则表达式区配每一行字符,取得email地址 package regex; import java.io.Buffere