遇到复杂而繁琐的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;

public class GetLinkTest {

public static void main(String[] args) {

try {

// 通过过滤器过滤出标签

Parser parser = new Parser("//www.zzvips.com");

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("//www.zzvips.com")) {

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.htmlcleaner.PrettyXmlSerializer;

import org.htmlcleaner.TagNode;

/**

*

*/

public class HtmlClean {

public void cleanHtml(String htmlurl, String xmlurl) {

try {

long start = System.currentTimeMillis();

HtmlCleaner cleaner = new HtmlCleaner();

CleanerProperties props = cleaner.getProperties();

props.setUseCdataForScriptAndStyle(true);

props.setRecognizeUnicodeChars(true);

props.setUseEmptyElementTags(true);

props.setAdvancedXmlEscape(true);

props.setTranslateSpecialEntities(true);

props.setBooleanAttributeValues("empty");

TagNode node = cleaner.clean(new File(htmlurl));

System.out.println("vreme:" + (System.currentTimeMillis() - start));

new PrettyXmlSerializer(props).writeXmlToFile(node, xmlurl);

System.out.println("vreme:" + (System.currentTimeMillis() - start));

} catch (IOException e) {

e.printStackTrace();

}

}

}

通过网页查看服务器算法,java分析html算法(java网页蜘蛛算法示例)相关推荐

  1. 抖音xlog算法 hook分析记录 抖音xlog风控算法 抖音xlog参数分析

    1.抖音xlog算法是什么? 与X-Gorgon算法和设备注册服务的不同,他主要是搜集环境信息参数包括一些检测点,组成一个json串然后调用data加密传到服务器进行分析比对.我们抓包可以看到一条ur ...

  2. 通过网页查看服务器算法,利用17ce自动化监测网站

    原标题:利用17ce自动化监测网站 作者:suliuer 1 概述 运维工作中,遇到网络抖动报警或者有用户反馈故障的时候,我们会使用类似17ce这些测速工具诊断一下全国各地访问站点的实际情况.但是,上 ...

  3. 通过网页查看服务器算法,服务器使用国密(SM2/SM3/SM4)证书,通过浏览器访问

    1. Apache + Gmssl Apache 本身不支持国密,需要修改代码支持GMTLS 下载解压: wget http://archive.apache.org/dist/httpd/httpd ...

  4. 电脑打开网页提示服务器错误是怎么回事,电脑打开网页 http500服务器错误 怎么办?...

    http 500内部服务器错误说明IIS服务器无法解析ASP代码,访问一个静态页面试试是否也出现这个问题,如果访问静态页面没问题,那就要分以下几种 情况来分析了: ① 你是否改变过计算机名称. ② 站 ...

  5. 原谅帽大作战网页版服务器连接失败,原谅帽大作战网页PC版

    当你在生活中遇到不如意,不妨来这款游戏中发泄一下,<原谅帽大作战网页版>又称绿帽大作战,十分生动形象的表现了最近网上火爆的这个梗,与其选择原谅她,给别人丢绿帽子当然爽的起飞了,游戏在线即玩 ...

  6. 37镇魔曲网页版服务器状态,37《镇魔曲网页版》官网正式上线

    <镇魔曲>是以架空世界观为背景的"第三代战斗网游",其全职业全技能无锁定战斗,目的是为带给玩家化繁为简的"沉浸式"战斗体验,同时高智商怪物对抗和多维 ...

  7. java 分析excel模板,java 根据excel模板导出excel

    java 根据excel模板导出excel 由于项目需求,最近做了一个需要根据查询接口导出excel表格数据的需求 pom依赖: org.apache.poi poi 3.16 org.apache. ...

  8. 【算法设计与分析】排序算法性能分析

    github:项目地址 一.实验目的 掌握选择排序.冒泡排序.合并排序.快速排序.插入排序算法原理 掌握不同排序算法时间效率的经验分析方法,验证理论分析与经验分析的一致性. 二.实验概述 排序问题要求 ...

  9. JAVA分析html算法(JAVA网页蜘蛛算法)

    近来有些朋友在做蜘蛛算法,或者在网页上面做深度的数据挖掘.但是遇到复杂而繁琐的html页面大家都望而却步.因为很难获取到相应的数据. 最古老的办法的是尝试用正则表达式,估计那么繁琐的东西得不偿失,浪费 ...

最新文章

  1. linux谁动了我的服务器,linux系统监控之谁动了我的服务器?
  2. java中capitals,Java GlobalConfiguration.isCapitalMode方法代码示例
  3. Vue 跨平台性能优化十法
  4. PHP 备份还原 MySql 数据库
  5. Fleet究竟是什么?为什么最近这么火~
  6. android shape 按钮背景_Android UI:XML文件配置按钮等背景方案
  7. C#正则表达式小结 - z
  8. 优先体验重播matlab_如何为深度Q网络实施优先体验重播
  9. dotnet OpenXML PPT 动画框架入门
  10. 大话设计模式——解释器模式
  11. android 图片浏览 app 排行版,安卓图片浏览软件哪个好_安卓图片浏览app推荐_图片浏览app软件排行...
  12. animation之补间动画
  13. 一本书读懂财报 | 现金流量表剖析
  14. matlab求两向量夹角_高考数学解题技巧:专题21 平面向量中最值、范围问题高中数学黄金解题模板...
  15. Android-模块化-面向接口编程深度解析,值得收藏
  16. SSLOJ 1459.空间简单度【扫描线】【线段树】
  17. 微信小程序抽奖插件分享
  18. 阿里、华为、腾讯的“第二曲线”,大厂云们的成败得失如何评价?
  19. gensim LDA模型提取每篇文档所属主题(概率最大主题所在)
  20. tuned-adm性能优化的配置文件详解

热门文章

  1. Codeforces Round #614 (Div. 2) D. Aroma‘s Search 暴力 + 思维
  2. P2371 [国家集训队]墨墨的等式 同余最短路
  3. 【CF1020C】Election【贪心】
  4. 数论三之组合数学Ⅰ-Max-Min Sums,Binomial Coefficient is Fun,Strivore,Bubble Sort,放棋子,LOJ6671,Iroha and a Grid
  5. [LOJ]体育成绩统计 / Score (无脑模拟,没有脑子,就是上!)
  6. P3642 [APIO2016]烟火表演(左偏树、函数)
  7. YBTOJ洛谷P3195:玩具装箱(斜率优化dp)
  8. YbtOJ#482-爬上山顶【凸壳,链表】
  9. P2831-愤怒的小鸟【状压dp】
  10. jzoj3888-正确答案【字符串hash,dfs】