• 大小: 1.15MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-10-01
  • 语言: Java
  • 标签: java  例子  

资源简介

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个文件信息

评论

共有 条评论