用TWebBrowser访问页面时,如何获得页面中的图片文件?(85分)

  • 主题发起人 主题发起人 night_cat2000
  • 开始时间 开始时间
N

night_cat2000

Unregistered / Unconfirmed
GUEST, unregistred user!
要程序自动完成下载页面、获取图片操作。
分不多,以后有分了再补吧!
 
搜索!搜索!搜索!

我上个星期刚回答了两个差不多的问题!难道你们就不会搜索吗???
 
To:小猪
呵呵,就是搜不到才问撒。大部分都是说“另存为”的方法,我要的是自动完成的。
你的那几个回答的LID是多少?
 
uses mshtml
//得到所有图片链接
procedure TForm1.Button1Click(Sender: TObject);
var
doc:IHTMLDocument2;
all:IHTMLElementCollection;
len,i:integer;
item:IHTMLElement;
vAttri:Variant;
begin
memo1.Lines.Clear;
//获得Webbrowser对象中的文档对象
doc:=webbrowser1.Document as IHTMLDocument2;
//获得文档中所有的HTML元素集合
all:=doc.Get_all;
len:=all.Get_length;
for i:=0 to len-1 do begin
item:=all.item(i,varempty) as IHTMLElement;
if item.Get_tagName = 'IMG'then begin
vAttri:=item.getAttribute('SRC',0);
memo1.Lines.Add(vAttri);
end;
end;
end;
得到了后我就不说了吧…………
 
To:wolfsong
不知是否我没看懂,你这个好象取得的是图片文件路径名,而不是图象文件(或内容)。
和我用Get_images获得的一样。
 
是啊,然后你可以一个一个的下载么:-)
 
To:wolfsong
我倒!!!你这样不行。
最多取到一些静态图片,象计数器之类的动态图片怎么取?
(一定要取当前页面的,你再去取图片的时候它的内容就变了)
 
恰恰相反,我觉得刚好取到了当前页面的;
也就是说,就是你看到的当前页面的所有图片,
如果网页图片动态发生变化(比如banner),那么你仍取到了你所看到的网页图片,
而不是你一刷新所看到的新图片。
 
我倒要试试。
知道图片路径后,怎么取内容到TImage?
 
要用TWebBrowser
 
你非要用timage显示么?
webbrowser也可以显示啊;
再说:知道地址和文件名,你可以用socket往下拉啊,还可以弄弄多线程,
参考falshjet之类的下载软件么
 
要获得图片,可以修改一下 HTTP 头中的文件类型:image/gif
获得图像流后再保存。
 
用socket能取到WebBrowser中看到一样的动态图片吗?比如:计数器
 
用http下载文件的方法我知道。我要取得的动态图片和TWebBrowser中显示的要同步!
不知我说的大家明不明白
 
如果计数器图片是用gdi生成的,那么我就不知道罗:-)(我也在赶活,暂时没空测试)
不过我猜想:如果是用gdi生成的话,应该能取到最新的(比你在webbrowser看到的新)
 
gdi是什么东西?如果有办法能实现:自动将当前页面“另存为”,就可以了。谁会?
 
在浏览器中,若能执行图片对象的“另存为”,应该也是一种思路。
 
webbrowser1.ExecWB(OLECMDID_SAVEAS,0);
 
得到了图片的Src。
然后用Http控件下载下来。
 
To:wolfsong
那是要手工干预的。
 

Similar threads

D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
875
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部