生成MHT的开发手记(6月27日)

今天的重点在如何将页面中的img提取出来然后生成base64编码的字符串。

昨天写的URLLocalFileName函数可以根据一个URL获得其本地的文件名,今天写了一个
base64EncodeResource函数可以将url指向的资源编码到base64的函数。这个函数需要
判断url指向的资源在本地有没有缓存,如果有的话就打开并获取文件内容然后编码。如果
没有的话就创建一个TIdHTTP对象,下载这个文件到一个TStream中然后进行编码。

对于HTML中的资源的分析和链接提取,原来我用的是一个开源得Ui_less的工具,今天发
现有问题,在调用完成后退出可能会出现Access Violation的错误。因为我的IE工具本身
就维护一个InternetExplorer对象,所以干脆就通过IWebbrowser2接口来分析算了。

程序写完跑了一下,发现一个问题,对于类似<Object><embeded></embeded></Object>
这样嵌入的对象没法遍历到,不过看了一下微软自己生成的mht文件,也没有,呵呵,那就
这样吧。

另外发现两个问题:

  • 微软保存的mht文件中不但有img,还有脚本。这个我需要分析一下,可能还有css等连接到
    HTML中的对象都需要解码。
  • 在遍历的时候,如果一个图像在页面上出现多次,就会导致被遍历到多次,但是在生成的mht
    文件中肯定只能有一个解码,所以这个在以后需要注意一下,要有一个数组来记录被解码过的
    url地址。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值