php网页抓取图片(JAVA网站一个页面上的全部邮箱为例来做具体说明)
优采云 发布时间: 2022-02-04 14:02php网页抓取图片(JAVA网站一个页面上的全部邮箱为例来做具体说明)
网络爬虫(也称为网络蜘蛛、网络机器人,在 FOAF 社区中,更常被称为网页追逐者)是根据一定的规则自动从万维网上爬取信息的程序或脚本。今天,我们就以JAVA抓取一个页面网站上的所有邮箱为例,做一个具体的讲解。人们一直很懒惰,不再制作GUI。让我们看看并理解其原理。
————————————————————————————————————————————————————— —
最好在百度上找个网页,多想想。本次以贴吧网页点击打开链接为例进行说明。
从图片和网页可以看出,上面有很多邮箱。我大致看了十几页,大概有几百页。如果你是房东,你一定很难处理。如果你一个一个地发送它们,那将是太多的工作。一个一个地复制一个邮箱真的很累。但是,如果你不发布它,你肯定会被你的朋友所鄙视。
怎么做?当然,如果有一个工具可以自动识别网页上的邮箱并进行检索就好了……他是一个网络爬虫,但是他按照一定的规则来爬取网页数据,(像百度,谷歌做SEO大多是网页数据的抓取和分析)并保存这些数据,方便数据处理和使用。废话太多,去教程吧。————————————————————————————————————————————————————— — 思想分析:1.要从网页获取数据,必须获取到该网页的链接
2.为了在网页上获取邮箱地址,必须有相应的邮箱地址获取规则
3.为了移除数据,必须通过数据相关类的操作来获取
4.为了保存数据,必须实现保存数据的操作———————————————————————————————— ———————— ——————————————
接下来代码。
打包工具;导入 java.io.BufferedReader;导入 java.io.File;导入 java.io.FileWriter;导入 java.io.InputStreamReader;导入 java.io.Writer;导入 .URL;导入 .URLConnection;导入 java.sql .Time;import java.util.Scanner;import java.util.regex.Matcher;import java.util.regex.Pattern;public class Demo { public static void main(String[] args) throws Exception {// 这个程序里面异常太多为简单起见,不要尝试直接扔给虚拟机 Long StartTime = System.currentTimeMillis(); System.out.println("-- 欢迎使用飞扬简易爬虫--"); System.out.println(""); System.out.println("--请输入正确的网址如"); Scanner input = new Scanner(System.in);// 实例化键盘输入类 String webaddress = input.next();
URLConnection conn = url.openConnection();// 获取链接 BufferedReader buff = new BufferedReader(new InputStreamReader( conn.getInputStream()));// 获取网页数据 String line = null; 诠释我=0;String regex = "\ \w+@\\w+(\\.\\w+)+";//声明一个正则,提取网页的前提Pattern p = pile(regex);//实例化outWriter.write( "网页收录的邮箱如下所示:\r\n"); while ((line = buff.readLine()) != null) { Matcher m = p.matcher(line);// 进行匹配 while (m.find() ) { i++; outWriter.write(m.group() + ";\r\n");// 输入匹配的字符到目标文件} } Long StopTime = System.currentTimeMillis(); String UseTime=(StopTime- StartTime)+""; outWriter.write("--------------------------------------- ------ ------------\r\n"); outWriter.write(" ); }}); System.out.println(" ————————————————————————\t"); }}); System.out.println(" ————————————————————————\t"); }}
代码如上,每一行都有注释。如果实在不明白,可以联系我。
编译->直接在命令行运行
输入爬取页面的地址。
打开D盘目录,找到test.xt文件。
文件中的邮箱添加了“;” 默认情况下,方便大家发送。
当然,爬取本地文件中的数据更容易
不用过多解释,直接上代码。
导入 java.io.BufferedReader;导入 java.io.File;导入 java.io.FileReader;导入 java.util.regex.Matcher;导入 java.util.regex.Pattern;公共类 Demo0 { public static void main(String[ ] args)throws Exception { BufferedReader buff=new BufferedReader(new FileReader("D:"+File.separator+"test.txt")); 字符串行=空;字符串正则表达式="\\w+@\\w+(\\ .\\w+)+"; 模式 p=pile(正则表达式); while ((line=buff.readLine())!= null) { Matcher m=p.matcher(line); while (m.find()) { System.out.println(m.group()+";"); } } }}