需要的jar如下:

package jsoup.zr.com.utils;
/**
*
* @author LF
*
*/
public class Constant { /**
* 网站链接地址ַ
*/
public static String URL = "http://bbs.tianya.cn/post-enterprise-758850-1.shtml"; /**
* 生成目标文件所存放的路径
* 注意:路径请用"/",勿用"\"
*/
public static String PATH = "/Users/apple/Desktop/"; /**
* exel文件的命名
*/
public static String NAME = "QQ"; /**
* 正则表达式(第一位1-9之间的数字,第二位0-9之间的数字,数字范围4-14)
*/
public static String QQREGEX = "[1-9][0-9]{4,14}"; /**
* 正则表达式(QQ、微信号、手机)
*/
public static String QQ_WEIXIN_PHONE = "^[a-zA-Z0-9_-]{5,19}$";
}
package jsoup.zr.com.utils;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern; import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element; /**
*
* @author LF
*
*/
public class ParseHTML { public static void main(String[] args) {
List<String> list = getInfoByURL(Constant.URL,Constant.QQREGEX);
ProduceExel.writeByList(list, "QQ号码"); } /**
* 获取网页内容
*/
public static List<String> getInfoByURL(String urlString,String regexString){
List<String> list = new ArrayList<String>();
URL url = null;
try {
url = new URL(urlString);
} catch (MalformedURLException e) {
e.printStackTrace();
}
// 打开连接
URLConnection connection = null;
try {
connection = url.openConnection();
} catch (IOException e) {
e.printStackTrace();
}
BufferedReader bReader = null;
try {
// 读取输入流
bReader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
} catch (IOException e) {
e.printStackTrace();
} Pattern pattern = Pattern.compile(regexString);
String line = null;
try {
while ((line = bReader.readLine()) != null) {
Matcher matcher = pattern.matcher(line);
// 如果匹配,存起来
while (matcher.find()) {
String str = matcher.group();
list.add(str);
}
}
} catch (IOException e) {
e.printStackTrace();
} return list;
} }
package jsoup.zr.com.utils;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.HashMap;
import java.util.List;
import java.util.Map; import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRichTextString;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
/**
*
* @author LF
*
*/
public class ProduceExel { /**
* 通过集合list生成exel报表
* @param list 集合
* @param lineName exel首行的名称
* @throws IOException 异常
*/
public static void writeByList(List<String> list,String lineName){
System.out.println(list.size());
// 如果没有数据,不做处理
if (list==null || list.size()==0) {
return;
}
String path = Constant.PATH+Constant.NAME+".xls";
System.out.println(path);
OutputStream outputStream = null;
try {
outputStream = new FileOutputStream(new File(path));
} catch (FileNotFoundException e) {
e.printStackTrace();
} // 初始化一个HSSFWorkbook对象
HSSFWorkbook workbook = new HSSFWorkbook();
// 创建一个表
HSSFSheet sheet = workbook.createSheet("lf");
// 创建行
HSSFRow row = sheet.createRow(0);
// 创建单元格
HSSFCell cell0 = row.createCell(0);
cell0.setCellValue(new HSSFRichTextString(lineName));
int i = 0;
// 遍历
for (String str : list) {
System.out.println("====="+str);
// 创建行
HSSFRow rowi = sheet.createRow(i+1);
// 创建单元格
HSSFCell celli = rowi.createCell(0);
// 单元格添加内容
celli.setCellValue(new HSSFRichTextString(str));
i++;
}
// 写(输出)
try {
workbook.write(outputStream);
} catch (IOException e) {
e.printStackTrace();
}
} /**
* 通过集合map生成exel报表
* @param map 集合
* @param lineName exel首行的名称
* @throws IOException 异常
*/
public static void write(Map<String, String> map,String lineName){
// 如果没有数据,不做处理
if (map==null || map.size()==0) {
return;
}
String path = Constant.PATH+Constant.NAME+".xls";
System.out.println(path);
OutputStream outputStream = null;
try {
outputStream = new FileOutputStream(new File(path));
} catch (FileNotFoundException e) {
e.printStackTrace();
} // 初始化一个HSSFWorkbook对象
HSSFWorkbook workbook = new HSSFWorkbook();
// 创建一个表
HSSFSheet sheet = workbook.createSheet("lf");
// 创建行
HSSFRow row = sheet.createRow(0);
// 创建单元格
HSSFCell cell0 = row.createCell(0);
cell0.setCellValue(new HSSFRichTextString(lineName));
int i = 0;
// 遍历
for (String str : map.values()) {
// 创建行
HSSFRow rowi = sheet.createRow(i+1);
// 创建单元格
HSSFCell celli = rowi.createCell(0);
// 单元格添加内容
celli.setCellValue(new HSSFRichTextString(str));
i++;
}
// 写(输出)
try {
workbook.write(outputStream);
} catch (IOException e) {
e.printStackTrace();
}
} }
package jsoup.zr.com.utils;
/**
*
* @author LF
*
*/
public class Verify { /**
* 验证是否是QQ号码
* @param QQNumber
* @return
*/
public static boolean verifyQQNumber(String QQNumber){
System.out.println(QQNumber.matches(Constant.QQREGEX));
return QQNumber.matches(Constant.QQREGEX);
} }

获取网页上的所有QQ号码,并生成exel报表的更多相关文章

  1. 获取网页上数据(图片、文字、视频)-b

    Demo地址:http://download.csdn.net/detail/u012881779/8831835 获取网页上所有图片.获取所有html.获取网页title.获取网页内容文字... . ...

  2. 如何获取网页上的LOGO

    一般公司网页上的图片都会禁止右键另存为,用截图工具接下来的图会带背景色,PS成背景透明有点费时间. 用Google Chrome 或Firefox 打开目标网页,右键点击审查元素,将鼠标放在图片上,一 ...

  3. 用PHP获取网页上的信息相对于xpath效率低点

    用php实现对网页的抓取,及信息的收集,其实就是爬数据,具体实现步骤如下,首先应引入两个文件curl_html_get.php和save_file.php文件,两个文件具体代码是这样的curl_htm ...

  4. C#注册URL协议,使用浏览器打开本地程序,类似网页上点了QQ交谈打开本地QQ客户端程序

    本教程适用于Windows系统 从浏览器上打开本地程序,主要用到了本地URL协议,其实主要就是改注册表 先建立一个项目,我建的是控制台项目 在Program.cs写2个静态方法用来添加注册表.移除注册 ...

  5. Android获取网页上的图片的代码

    public Bitmap getWebBitmap(String imgUrl) { Bitmap bitmap =null; try { InputStream inputStream = nul ...

  6. js获取网页上选中的部分,包含html代码

    function getSelectedContents(){     if (window.getSelection) { //chrome,firefox,opera         var ra ...

  7. C# 获取网页数据、获取本机IP 分类: C# 2014-12-16 14:59 308人阅读 评论(0) 收藏

    说明: (1) http://www.3322.org/dyndns/getip 这个网址可以获取本机IP,读取的内容就是本机IP (2)方法经测试,可以实现. (3)参考:http://www.cn ...

  8. C#获取网页信息并存入数据库

    1,获取以及商品分类信息 给一网页获取网页上商品信息的分类 using Skay.WebBot; using System; using System.Collections.Generic; usi ...

  9. 在线获取访客QQ号码的原理及实现方法

    原文地址:http://www.piaoyi.org/network/get-qq-haoma-js.html 正 文: 最近,飘易收到不少在线获取网站访客QQ号码的促销推广邮件,有不少商用网站挖掘了 ...

随机推荐

  1. 分享百度文件上传组件webUploader的使用demo

    先创建DOM节点:<head ng-app="myApp"> <meta charset="UTF-8"> <title>& ...

  2. 1DAY 初识Python

    一 本节目标 了解编程语言 了解python及与其他语言的优劣对比 安装python解释器及环境变量配置.运行python交互式环境 打印hello world程序 初识变量.用户输入,流程控制,wh ...

  3. Range(转)

    原文链接:http://www.cnblogs.com/peida/p/Guava_Range.html 在Guava中新增了一个新的类型Range,从名字就可以了解到,这个是和区间有关的数据结构.从 ...

  4. IDEA開發 java web 初步

    作爲一個小白,我也不知道爲啥同學們喜歡用IDEA開發,而不選擇eclipse,但是在項目學習中eclipse卻真的多次出現問題,無奈之下,本人也安裝了一個IDEA作爲學習使用.參考了博客開始使用這個工 ...

  5. 【转】JMeter-Java Sampler编写范例

    今天,听段念的培训,学了一下Jmeter写Java请求的过程. 根据某博文,修改其中代码的bug后,贴在下面吧:另外公司一同学Raylupas在半年前也写过关于JMeter写Java Sampler的 ...

  6. 20165226 2017-2018-4 《Java程序设计》第9周学习总结

    20165226 2017-2018-4 <Java程序设计>第9周学习总结 教材学习内容总结 第十二章 URL类 构造方法1 try { URL url = new URL(" ...

  7. 虚拟机桥接网卡下配置centOS静态IP

    前面我们讲了怎么去配置asterisk,但是配置完了,是没有什么效果出现的,因为asterisk相当于一个服务器,我们需要一个客户端去给它连接起来,如果你是在自己的机子上装了虚拟机,那最好配一下cen ...

  8. UE4 代码总结

    1.创建关卡类 1.创建C++类继承LevelScriptActor 2.打开关卡蓝图 Class Settings->Parent Class 选择你之前创建好的C++类 遇到的问题: 1.T ...

  9. VMware Workstation Pro 12 创建虚拟机(安装Ubuntu)

    为了在VMware Workstation下创建一个虚拟机,折腾了大半天,现把比较顺利的创建办法记录下来: VMware Workstation版本: 创建步骤: 1.VMware Workstati ...

  10. Angular.js中处理页面闪烁的方法详解

    Angular.js中处理页面闪烁的方法详解 前言 大家在使用{{}}绑定数据的时候,页面加载会出现满屏尽是{{xxx}}的情况.数据还没响应,但页面已经渲染了.这是因为浏览器和angularjs渲染 ...