资源简介
java爬取网页表格的例子(运行环境myeclipse)
代码片段和文件信息
package com;
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={“地块编号““宗地编号““地块位置““用地性质““规划面积““出让面积““发布时间““挂牌起始价““位置““交易时间““面积““规划用途““容积率““起价““成交价““交易方式““竞得人“};
/**
* 找到适合的装数据的TABle
*
* @param location
* @param document
* @return
*/
//取最里面的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(PropertystableElement)) != null) {
fitElments.add(te);
}
}
}
} else {
return null;
}
return fitElments;
}
return null;
}
//找出属性名所在的行把属性名所在的行之上的信息去掉
//ri为属性名所在行的结尾索引
//row为属性名所在行占的行数
//ri-row为属性名所在行的开始索引这里取属性名所在行到表格的结尾行
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;
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2014-01-24 14:17 crawTable\
文件 764 2014-01-24 10:21 crawTable\.classpath
文件 385 2014-01-24 10:19 crawTable\.project
目录 0 2014-01-24 11:29 crawTable\.settings\
文件 629 2014-01-24 10:19 crawTable\.settings\org.eclipse.jdt.core.prefs
目录 0 2014-01-24 11:29 crawTable\bin\
目录 0 2014-01-24 11:37 crawTable\bin\com\
文件 7570 2014-01-24 14:15 crawTable\bin\com\DataTableUtil.class
文件 704 2014-01-24 11:41 crawTable\bin\com\PropertyInfo.class
文件 2084 2014-01-24 11:30 crawTable\bin\com\SimFeatureUtil.class
文件 1122 2014-01-24 11:29 crawTable\bin\com\StringUtil.class
文件 963 2014-01-24 11:29 crawTable\bin\com\TableElement.class
文件 7857 2014-01-24 13:57 crawTable\bin\com\TableUtil.class
文件 2165 2014-01-24 14:10 crawTable\bin\com\TestCrawTable.class
目录 0 2013-08-16 17:11 crawTable\crawWebjar\
文件 36586 2013-07-31 16:49 crawTable\crawWebjar\chardet.jar
文件 207723 2013-07-31 16:49 crawTable\crawWebjar\commons-lang.jar
文件 55424 2013-07-31 16:49 crawTable\crawWebjar\commons-logging.jar
文件 51526 2013-07-31 16:49 crawTable\crawWebjar\cpdetector.jar
文件 433368 2013-07-31 16:49 crawTable\crawWebjar\httpclient-4.2.5.jar
文件 227275 2013-07-31 16:49 crawTable\crawWebjar\httpcore-4.2.4.jar
文件 293672 2013-07-31 16:49 crawTable\crawWebjar\jsoup-1.7.2.jar
目录 0 2014-01-24 10:27 crawTable\src\
目录 0 2014-01-24 11:37 crawTable\src\com\
文件 7608 2014-01-24 14:15 crawTable\src\com\DataTableUtil.java
文件 321 2014-01-24 11:41 crawTable\src\com\PropertyInfo.java
文件 1706 2014-01-24 11:30 crawTable\src\com\SimFeatureUtil.java
文件 486 2014-01-24 11:29 crawTable\src\com\StringUtil.java
文件 596 2014-01-24 11:23 crawTable\src\com\TableElement.java
文件 9246 2014-01-24 13:57 crawTable\src\com\TableUtil.java
文件 974 2014-01-24 14:10 crawTable\src\com\TestCrawTable.java
............此处省略0个文件信息
相关资源
- java的小型超市管理系统,包含mysql数
- javaWeb源码学生公寓管理系统struts2
- 学生学籍管理系统-jsp
- 基于Java Web的旅游网站设计与实现
- 基于Java Socket的租车系统.rar
- 茶叶销售网站(JAVAWEB)
- java se socket在线购物
- Java Excel Api及详细教程
- java优化编程ppt讲义,
- java语言程序设计清华郎波版课件、随
- Java语言程序设计课件PPT.zip
- JAVA版本微信公众账号开源项目版本发
- bt master 开源 纯java实现 bt 项目
- 用java实现爬虫抓取网页中的表格数据
- java.servlet的jar包
- ADT-16.0.1.zip
- Android个性化闹钟实现源码
- java实现wordpptexcel等转换
- java验证码识别
- PP软件授权平台 终端授权库Android JA
- 基于JAVA的电信计费系统
- WSO2-JAVA开发集成
- Java500篇
- JavaEE经典MVC框架Struts代码测试通过
- java版电影销售系统有后台包含三层架
- java仓库管理系统SQL
- java-界面组件案例大全(内含139个完整
- Java--web小网站
- Java微信退款
- java+mysql新闻发布网站(含数据库)
评论
共有 条评论