zoukankan      html  css  js  c++  java
  • htmlparser学习(原创)

    --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地址的过滤条件。

  • 相关阅读:
    Ubuntu vi命令
    Aria2 使用
    axel 参数 文件下载地址
    序列化模块、加密模块
    项目开发规范、time模块、日志
    递归函数(了解)
    模块
    函数进阶四(装饰器、内置函数)
    函数进阶三(生成器、生成器表达式、匿名函数)
    函数进阶二(函数名运用,闭包,迭代器)
  • 原文地址:https://www.cnblogs.com/angelshelter/p/3764071.html
Copyright © 2011-2022 走看看