--thumbelina.jar  这是一个演示图片搜索和显示的小程序JFrame

Preferences.userNodeForPackage(getClass());  根据传入的class所在包的路径创建一个preferences

prefs.flush();  保存到文件

项目中字符串拼接多采用StringBuilder

Lexer类用于对html格式的字符串解析成Node

mImage = Toolkit.getDefaultToolkit().createImage(bytes);  //通过byte[]创建图片

Rectangle功能很强大,可以计算与另一个Rectangle是否重叠,和获取重叠的的矩形

file = File.createTempFile("thumbelina", suffix);  file.deleteOnExit();    //创建临时文件

JViewport 用于查看底层信息的“视口”或“观察孔”。在滚动时,移动部分称为视口。这好像通过照相机的取景器进行查看。将取景器向上移动会将图片顶部的内部移入视野,而底部的内容将消失。

Tile类 英文是瓦,砖块的意思,很形象,接口编程,能得到“砖块”大小及位置Rectangle,它的状态Valid(有效/无效),它的id,项目里是图片对应的url

Picture类  负责下载图片,并且它实现了Tile,就可以在TileSet中显示了。它还有PictureListener属性,可以把图片状态的改变事件暴露出来。

PictureListener接口 对图片状态的监听

PicturePanel类  没看明白里面内嵌类Watcher的作用??

Sequencer类  把Picture放到队列里,一个线程定时地去取队列里面的图片,并呈现出来。

TileSet类 把矩形“瓦”集中起来,处理一些矩形重叠的问题,图片分割和整合部分看不懂。

ThumbelinaFrame类  程序的主界面

Thumbelina类 主要是对图片和链接的获取逻辑。2014-6-3

--sitecapturer.jar  一个抓取html和图片,并保存到本地的小程序,简单明了,以前我也想过找这样一个程序,把网页下载下来,放到本地看。

这个小程序就是实现了这样一个功能了,当然了,你要扩展它,让它能下更多的东西,比如js,css什么的。

SiteCapturer类  首先,它以内部类的形式定义ImageTag,LinkTag等的子类,封装得恰到好处。通过doSemanticAction()这个方法,在遍历的过程中得以执行,改写url为本地的。mCaptureResources是否获取资源文件。isToBeCaptured(String link)是否需要抓取。makeLocalLink(String link, String current)本地化链接地址。decode(String raw)对有%xx这样的编码进行解码。copy()下载资源,比如图片。 process()下载html,本地化url地址。分拣出各种资源并下载。

WikiCapturer类,是上面刚提到类的子类,主要是通过重写isToBeCaptured(String link)的方式,补充了对某些url地址的过滤条件。

htmlparser学习(原创)的更多相关文章

  1. htmlparser 学习

    htmlparser 学习系列 htmlparser 使用法使用与详解

  2. httpclient学习(原创)

    --httpmime-4.2.5.jar  跟提交Form相关的类 这一块主要post数据的提交.每一条数据同name和content组成.content可能是字节数组或是流.提交这一类(MIME)的 ...

  3. Symfony学习--原创。。。。

    {{ constant('Symfony\\Component\\HttpKernel\\Kernel::VERSION') }} //显示当前symfony的版本 #div { opacity: 0 ...

  4. Python 学习文章收藏

    作者 标题 rollenholt Python修饰器的函数式编程 - Rollen Holt - 博客园 rollenholt python操作gmail - Rollen Holt - 博客园 ro ...

  5. 【狼】openGL 光照的学习

    小狼学习原创,欢迎批评指正 http://www.cnblogs.com/zhanlang96/p/3859439.html 先上代码 #include "stdafx.h" #i ...

  6. AI时代大点兵-国内外知名AI公司2018年最新盘点

    AI时代大点兵-国内外知名AI公司2018年最新盘点 导言 据腾讯研究院统计,截至2017年6月,全球人工智能初创企业共计2617家.美国占据1078家居首,中国以592家企业排名第二,其后分别是英国 ...

  7. [Linux]正则表达式和grep使用【转载】

    [Linux]正则表达式和grep使用 2018年12月05日 23:45:54 祥知道 阅读数 78 标签: 正则表达式grepLinuxegrep 更多 个人分类: Linux 所属专栏:  Li ...

  8. django中ORM的model对象和querryset 简单解析

    欢迎大家查看我的博客,我会不定时的用大白话发一些看了就能懂的文章,大家多多支持!如您对此文章内容有独特见解,欢迎与笔者练习一起探讨学习!原创文创!转载请注明出处! ORM是干嘛的? 介绍orm之前我应 ...

  9. [原创]java WEB学习笔记95:Hibernate 目录

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

随机推荐

  1. python实现列表页数据的批量抓取练手练手的

    python实现列表页数据的批量抓取,练手的,下回带分页的 #!/usr/bin/env python # coding=utf-8 import requests from bs4 import B ...

  2. 15.python操作mysql

    导入包 from pymysql import* 1. 创建 Connection 连接 conn=conne(host='192.168.13.130',port=3306 ,database='' ...

  3. SHOW CREATE语句

    show create table tablename 查看某表的建表语句 同理查看存储过程 show create procedure  sp_name

  4. springboot整合ribbitMQ

    参考:https://blog.csdn.net/a13627210064/article/details/82348059 参考:https://blog.csdn.net/u010288264/a ...

  5. 7.分工合作include:指定多个配置文件

    转自:https://wenku.baidu.com/view/84fa86ae360cba1aa911da02.html 比如让jack来单独开发一个action,在jack.xml中的配置文件为: ...

  6. 子元素margin-top后,跟父元素一起下沉

    在一个<div>元素中嵌套一个子div,同时设置子div的margin-top,结果,父元素和子元素一起下沉,留出来个空白区域. 原因就是:        一个盒子如果没有上补白(padd ...

  7. UI5-文档-4.4-XML Views

    将所有UI放到index.html文件将很快导致一个混乱的设置,有相当多的工作在我们前面.我们先用sap.m.Text进行模块化.控件导入专用视图. SAPUI5支持多种视图类型(XML.HTML.J ...

  8. GitLab CI 之 Java HelloWrold

    问题描述 测试人员想在gitalb上跑 JUnit项目,也就是java代码. 听到这个之后,我当时都懵了,我他妈gitlab的runner是为运行.net core 安装的呀.后来一想,是我错了,我用 ...

  9. 代码重构:用工厂+策略模式优化过多的if else代码块

    最近在工作中优化了一段冗余的if else代码块,感觉对设计模式的理解和运用很有帮助,所以分享出来.鉴于原代码会涉及到公司的隐私,因此就不贴出来了.下面以更加通俗易懂的案例来解析. 假如写一个针对员工 ...

  10. PR合并回写

    ) as LGORT ,'SAPRFC' as ERNAM,out_pr.due_datetime,out_pr.so_id,out_pr.so_lineid,out_pr.sobsl from V_ ...