- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
JAVA分析html算法(JAVA网页蜘蛛算法)
近来有些朋友在做蜘蛛算法,或者在网页上面做深度的数据挖掘。但是遇到复杂而繁琐的html页面大家都望而却步。因为很难获取到相应的数据。
?? 最古老的办法的是尝试用正则表达式,估计那么繁琐的东西得不偿失,浪费我们宝贵的时间。
?? 第二个办法用开源组织htmlparser的包,这个是一个比较老的项目,但是效果估计不是很好,好像不可以深入分析html,只能分析5级的结构;
?? 我这里有个htmlparser的源代码,可以获取所有的超链接的
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package test;
import java.util.HashMap;
import java.util.Map;
import org.htmlparser.Node;
import org.htmlparser.NodeFilter;
import org.htmlparser.Parser;
import org.htmlparser.tags.LinkTag;
import org.htmlparser.util.NodeList;
/**
*
* @author Arjick@163.com
*/
public class GetLinkTest {
public static void main(String[] args) {
try {
// 通过过滤器过滤出A标签
Parser parser = new Parser();
NodeList nodeList = parser.extractAllNodesThatMatch(new NodeFilter() {
// 实现该方法,用以过滤标签
public boolean accept(Node node) {
if (node instanceof LinkTag)// 标记
{
return true;
}
return false;
}
});
// 打印
for (int i = 0; i nodeList.size(); i++) {
LinkTag n = (LinkTag) nodeList.elementAt(i);
//System.out.print(n.getStringText() + == );
//System.out.println(n.extractLink());
try {
if (n.extractLink().equals()) {
System.out.println(n.extractLink());
}
} catch (Exception e) {
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
第三个办法,也是我现在一直在用的办法,首先把html清理为xml,然后用java解析xml获取数据,现在上传一个java clean html的源代码:/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package exec;
import java.io.File;
import java.io.IOException;
import org.htmlcleaner.CleanerProperties;
import org.htmlcleaner.HtmlCleaner;
import org.ht
文档评论(0)