资源简介
使用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的手机通讯录代码
相关资源
- Java网页设计
- 网页设计——美食
- java实现的主题爬虫
- 基于J2EE的网页版在线聊天室
- jsp ssh mvc java web j2ee网络商城+论文+源
- jsp ssh mvc java web j2ee bs 在线考试系统
- 桌面和网页开发都能用的OCX控件,可
- 基于java的文本搜索引擎的设计与实现
- 80款优秀JSP网页模板.rar
- 华农Linux系统及程序设计实验全部代码
- DJNativeSwing组件集含32 64位swt包
- 北邮信息网络应用JSP网页实验报告
- 爬虫工具,用于获取平行语料
- 基于jsp的在线手机销售系统
- 知乎爬虫最新版
- jsp+javabean+servelt实现简单的登录及选课
- 网络爬虫 PDF
- java+jsoup抓取网页数据
- Java+爬虫+爬取图片+完整案例+源码
- 基于java实现网络爬虫
- JSP网页模板
- 在线投票系统 jsp 网页制作
- htmlunit 及其 依赖包
- javaToImageByUrl
- 12306Java爬虫
- 超级课程表一键提取课程功能app及课
- java购物网站175054
- java实现网页新闻程序
- 网络爬虫jar包全
- Java爬虫汽车之家图片
评论
共有 条评论