資源簡介
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? 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? 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? 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? 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個文件信息
評論
共有 條評論