首页
社区
课程
招聘
如何提取网页中的图片?
发表于: 2006-10-9 07:29 21958

如何提取网页中的图片?

2006-10-9 07:29
21958
我想做一个程序,把网页中的图片直接提取出来显示在我的程序中,以前我试过把程序置顶然后CaptureScreen,我觉得这样做比较麻烦。

现在我又想到一种方法,直接获取图片的URL再下载回来,我仍然感觉这种方法有点绕,网页显示时已经下载了该图片,在程序中还要进行二次下载。

想问问各位大虾,如何把已经显示在网页中的图片直接放到我的程序中?或者说如何得知网页中图片在本地IE缓存中的位置?

望各位大虾不吝赐教!

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 236
活跃值: (26)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
2
在我们编写的程序中,如果想要实现对浏览器打开的网页进行监视、模拟操纵、动态提取用户输入、动态修改......等功能,那么请你抽出宝贵的时间,继续往下阅读。本文介绍的知识和示例程序都是围绕如何遍历 HTML 中的表单(form)并枚举出表单域的属性为目标的,对于网页中的其它元素,比如图象、连接、脚本等等,应用同样的方法都可以轻松实现。

  二、网页的文档层次结构

  IE 浏览器,采用 DOM(文档对象模型)来管理网页的数据。它通过一个容器(IWebBrowser2/IHTMLWindow2)来装载网页文档(IHTMLDocument2),而一个文档,又可以由 0 或多个贞(frame)组成,管理这些贞的接口叫“框架集合(IHTMLFramesCollection2)”,而每个贞的容器又是IHTMLWindow2,和IWebBrowser2一样,它也装载着各自的文档(IHTMLDocument2)。因此,我们的第一个任务,就是想方设法能够得到IHTMLDocument2的接口。因为文档可能包含贞,而贞又包含着子文档,子文档可能再包含贞......,如此要得到所有的文档,这里有一个递归遍历的处理过程。

  得到文档(IHTMLDocument2)后,下一步任务就是要设法取得表单了(IHTMLFormElement)。因为在一个文档中可以包含 0 或多个表单(form),而管理这些表单的又是一个表单集合(IHTMLElementCollection),所以必须先得到集合,然后再枚举出所有的表单条目了。

  得到表单(IHTMLFormElement)后,接下来的事情就简单了,逐个提取表单中的元素(也叫表单域 IHTMLInputElement)就可以读写这些域的属性了。

找这方面的资料看看
或许对你有用
2006-10-9 18:48
0
雪    币: 6051
活跃值: (1441)
能力值: ( LV15,RANK:1473 )
在线值:
发帖
回帖
粉丝
3
通过楼主的方法只能得到属性,如width,height,url之类的,但是不能得到picture对象。我查了相关资料是这么说的。

我上CSDN查了一下,也没找到可以直接引用图片对象的,倒是发现一种方法可以直接得到IE缓存中的图片路径:设置一个OLE对象,比如添加一个PictureBox并设置OLE为自动,当把网页中的图片直接拖到PictureBox中时,可以在PictureBox的DragDrop事件中截获并得到该图片在本地IE缓存中的路径。

现在我郁闷的是:如何不通过拖放,直接在程序中得到这个地址?

还希望大家再来讨论一下!

PS:我用的是VB,如果是其他语言也希望能不吝赐教!
2006-10-9 22:42
0
游客
登录 | 注册 方可回帖
返回
//