资源简介
使用java代码基于MyEclipse开发环境实现爬虫抓取网页中的表格数据,将抓取到的数据在控制台打印出来,需要后续处理的话可以在打印的地方对数据进行操作。包解压后导入MyEclipse就可以使用,在TestCrawTable中右键运行就能看到抓取到的数据。其他的调试可以自行修改。
代码片段和文件信息
package com.panchong.test;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.parser.Tag;
import org.jsoup.select.Elements;
public class DataTableUtil {
private final static int NUM = 5;
// 要抓取的表格可能出现的属性名
// static String[] Propertys={“企业名称““注册号/统一社会信用代码““被列入经营异常名录日期“};
static String[] Propertys = { “地块编号“ “宗地编号“ “地块位置“ “用地性质“ “规划面积“
“出让面积“ “发布时间“ “挂牌起始价“ “位置“ “交易时间“ “面积“ “规划用途“ “容积率“ “起价“
“成交价“ “交易方式“ “竞得人“ };
// 取最里面的table进入isValueElement方法检测是不是我们需要的table
public static List getFitElement(Document document) {
if (Propertys != null) {
Element element = document.getElementsByTag(“body“).get(0);
List fitElments = new ArrayList();
Elements tableElements = element.getElementsByTag(“table“);
if (tableElements != null && tableElements.size() > 0) {
for (int i = 0; i < tableElements.size(); i++) {
Element tableElement = tableElements.get(i);
Elements ces = tableElement.getElementsByTag(“table“);
if (ces != null && ces.size() > 1) {
} else {
TableElement te;
if ((te = isValueElement(Propertys tableElement)) != null) {
fitElments.add(te);
}
}
}
} else {
return null;
}
return fitElments;
}
return null;
}
private static Element removeRedundance(String[] Propertys Element element) {
Elements tres = element.getElementsByTag(“tr“);
Element trElement = tres.get(0);
Elements tde = trElement.getElementsByTag(“td“);
int row = 1;
for (Element tdElement : tde) {
String attribute = tdElement.attr(“rowspan“);
if (attribute != null && !attribute.equals(““)) {
int rowSpan = Integer.valueOf(attribute);
if (rowSpan > row) {
row = rowSpan;
}
}
}
List elements = new ArrayList();
for (int i = 0; i < row; i++) {
elements.add(tres.get(i));
}
int ri = 0;
while (!isValueElements(Propertys elements)) {
elements = new ArrayList();
row = 1;
Elements tdes = tres.get(ri).getElementsByTag(“td“);
for (Element tdElement : tdes) {
String attribute = tdElement.attr(“rowspan“);
if (attribute != null && !attribute.equals(““)) {
int rowSpan = Integer.valueOf(attribute);
if (rowSpan > row) {
row = rowSpan;
}
}
}
for (int i = 0; i < row; i++) {
elements.add(tres.get(ri + i));
}
ri = ri + row;
}
if (ri > 0) {
Elements trs = element.getElementsByTag(“tr“);
int size = trs.size();
Element newElement = new Element(Tag.valueOf(“table“) “table“);
for (int i = ri - row; i < size; i++) {
newElement.appendChild(trs.get(i));
}
return newElement;
}
return element;
}
private static boolean isValueElements(String[] Propertys
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 885 2016-12-09 17:47 PanChongTest\.classpath
文件 388 2016-12-09 17:15 PanChongTest\.project
文件 598 2016-12-09 17:15 PanChongTest\.settings\org.eclipse.jdt.core.prefs
文件 36586 2016-12-09 17:16 PanChongTest\bin\chardet.jar
文件 7712 2016-12-15 15:28 PanChongTest\bin\com\panchong\test\DataTableUtil.class
文件 732 2016-12-09 17:47 PanChongTest\bin\com\panchong\test\PropertyInfo.class
文件 1548 2016-12-09 17:47 PanChongTest\bin\com\panchong\test\SimFeatureUtil.class
文件 1150 2016-12-09 17:47 PanChongTest\bin\com\panchong\test\StringUtil.class
文件 991 2016-12-09 17:47 PanChongTest\bin\com\panchong\test\TableElement.class
文件 8053 2016-12-09 17:47 PanChongTest\bin\com\panchong\test\TableUtil.class
文件 2277 2016-12-15 15:26 PanChongTest\bin\com\panchong\test\TestCrawTable.class
文件 207723 2016-12-09 17:16 PanChongTest\bin\commons-lang.jar
文件 55424 2016-12-09 17:16 PanChongTest\bin\commons-logging.jar
文件 51526 2016-12-09 17:16 PanChongTest\bin\cpdetector.jar
文件 433368 2016-12-09 17:16 PanChongTest\bin\httpclient-4.2.5.jar
文件 227275 2016-12-09 17:16 PanChongTest\bin\httpcore-4.2.4.jar
文件 293672 2016-12-09 17:16 PanChongTest\bin\jsoup-1.7.2.jar
文件 36586 2016-12-09 17:16 PanChongTest\lib\chardet.jar
文件 207723 2016-12-09 17:16 PanChongTest\lib\commons-lang.jar
文件 55424 2016-12-09 17:16 PanChongTest\lib\commons-logging.jar
文件 51526 2016-12-09 17:16 PanChongTest\lib\cpdetector.jar
文件 433368 2016-12-09 17:16 PanChongTest\lib\httpclient-4.2.5.jar
文件 227275 2016-12-09 17:16 PanChongTest\lib\httpcore-4.2.4.jar
文件 293672 2016-12-09 17:16 PanChongTest\lib\jsoup-1.7.2.jar
文件 6993 2016-12-15 15:28 PanChongTest\src\com\panchong\test\DataTableUtil.java
文件 341 2016-12-09 17:19 PanChongTest\src\com\panchong\test\PropertyInfo.java
文件 1370 2016-12-09 17:36 PanChongTest\src\com\panchong\test\SimFeatureUtil.java
文件 451 2016-12-09 17:18 PanChongTest\src\com\panchong\test\StringUtil.java
文件 608 2016-12-09 17:17 PanChongTest\src\com\panchong\test\TableElement.java
文件 8531 2016-12-09 17:37 PanChongTest\src\com\panchong\test\TableUtil.java
............此处省略15个文件信息
- 上一篇:java.servlet的jar包
- 下一篇:基于Android的手机通讯录代码
相关资源
- JSP 网上购物网页项目
- java 程序设计网页浏览器
- 优秀的jsp、html网页设计模板(80多款
- 基于http的Java爬虫爬取百度新闻
- 购物网站系统源代码网页模板正式版
- Web表单设计 创建高可用性的网页表单
- webrtc实现网页版视频一对一
- 微信公众号爬取数据
- 基于JAVA技术爬虫爬网站图片设计与实
- spring boot+mybatis开发java web网页版电子
- 网页模板 15套装 html asp.net
- 简单网页html+jsp+css
- java网页读取实现小说阅读器源码
- 用java实现爬虫抓取网页中的表格数据
- 基于强智科技教务系统学生成绩爬虫
- cocos2d-x嵌入webview
- 酒店管理系统Jsp网页版
- android 客户端访问java后台实现登陆,
- jsp网页超级给力的。自己期末作业
- java网络爬虫搜索引擎
- jsp搜索引擎完整源码自带网络爬虫功
- knn分类器网页分类器
- web网页版的聊天室 JsP+ ajax 实现公聊和
- java与matlab混合编程jsp调用matlab网页显
- JSP网页聊天室源码
- SQL注入漏洞检测原型工具
- 点名系统网页开发
- 一款Android浏览器源码 功能有:扫描二
- java基于WEB网页点餐系统毕业设计程序
- 电视节目预告软件 网页版
评论
共有 条评论