如何得到“所有”在浏览器里显示的文本? ( 积分: 200 )

  • 主题发起人 主题发起人 pgnzr
  • 开始时间 开始时间
P

pgnzr

Unregistered / Unconfirmed
GUEST, unregistred user!
用IHTMLDocument2和idhttp.get(url);都不行。javascrip显示的部分就得不到。

还是我的用法有问题:
function TForm1.GetHtml(const WebBrowser: TWebBrowser): String;
var
Doc :IHTMLDocument2;
Elements :IHTMLElementCollection;
Item :IHTMLElement;
mLen,i :integer;
begin
Doc := WebBrowser.Document as IHTMLDocument2;
if Doc = nil then Exit;
Elements:= Doc.all as IHTMLElementCollection;
mLen:=Elements.length;
for i:= 0 to mLen - 1 do
begin
Item:=Elements.Item(i,'') as IHTMLElement;
if uppercase(Item.tagName) = 'HTML' then
begin
Result:=Item.Outertext;
Break;
end;
end;
end;
 
用IHTMLDocument2和idhttp.get(url);都不行。javascrip显示的部分就得不到。

还是我的用法有问题:
function TForm1.GetHtml(const WebBrowser: TWebBrowser): String;
var
Doc :IHTMLDocument2;
Elements :IHTMLElementCollection;
Item :IHTMLElement;
mLen,i :integer;
begin
Doc := WebBrowser.Document as IHTMLDocument2;
if Doc = nil then Exit;
Elements:= Doc.all as IHTMLElementCollection;
mLen:=Elements.length;
for i:= 0 to mLen - 1 do
begin
Item:=Elements.Item(i,'') as IHTMLElement;
if uppercase(Item.tagName) = 'HTML' then
begin
Result:=Item.Outertext;
Break;
end;
end;
end;
 
自己搞定
 
搞定就放分吧,反正楼主也无法收回了
 
说来听听
 
对啊!说来听听,让大家也学习一下.
 
我也正遇见这样的问题啊,麻烦给我发一份好吗?谢了:
EMAIl:liubin44966@126.com
 
就在前面的帖子里学到的。不知是不是最简单的。
procedure TForm1.Button4Click(Sender: TObject); //在单个frames中查找相同属性的对象
//用这个函数,可以看到编辑框 和按钮的Name属性(控件的名称)
var
s:string;
Count:Integer;
begin
memo1.Text:='';
//for Count :=0 to wb.OleObject.Document.All.Length -1 do //当前页面中所有对象数量
Begin
//if wb.OleObject.Document.All.Item(Count).TagName ='TD' then //找出所有属性为TD的对象//
Begin
//memo1.Lines.Add(Inttostr(count)+'当前网页查找的文本有:');
//s:=s+wb.OleObject.Document.All.Item(Count).InnerHtml;
//memo1.Lines.Add(wb.OleObject.Document.All.Item(Count).InnerText); //显示找到的对象的文本信息
//memo1.Lines.Add('文本的html码');
//memo1.Text:=s;
memo1.Lines.Add('Tagname=');
memo1.Lines.Add(wb.OleObject.Document.All.Item(0).TagName);
memo1.Lines.Add('HTML=');
memo1.Lines.Add(wb.OleObject.Document.All.Item(0).InnerHtml); //显示找到的对象的HTML源码信息
end;
end;
end;

网页的HTML(全部文本都在里面了):wb.OleObject.Document.All.Item(0).InnerHtml
其count为0,TagName为Html

哈哈,大家都有分,谁说没法收回
 
收回50分
 
多人接受答案了。
 
后退
顶部