webbrowser递归遍历网页元素问题求教!

取昵称麻烦 2013-05-30 08:01:51
遍历不了整个网页的元素,求高手指点,代码如下:

procedure TForm1.searchDoc(vDoc: IHTMLDocument2);
var
doc,framedoc: IHTMLDocument2;
j,k: Integer;
HtmlElem: IHTMLELEMENT;
price:string;
f:Extended;
begin
doc := vDoc;
if doc = nil then Exit;
framedoc := GetDocument(doc,k);
if framedoc = nil then exit;
if framedoc.frames.length =0 then
begin
HtmlParser.HTML := framedoc.body.innerHTML;
for j:=0 to HtmlParser.WebElements.ElementCount - 1 do
begin
HtmlElem := HtmlParser.WebElements.ElementByIndex[j];
if GetElementType(HtmlElem) <> ELE_TEXT then Continue;//过滤掉不是文本输入框的元素
if HtmlElem.title ='价格1' then
begin
price := (HtmlElem as IHTMLInPutElement).value;
if TryStrToFloat(price,f) then
begin
GetItem(framedoc,'DATA_14',False,0,FloatToStr(f-0.1));
GetItem(framedoc,'DATA_16',False,0,FloatToStr(f-0.3));
GetItem(framedoc,'DATA_18',False,0,FloatToStr(f-0.6));
GetItem(framedoc,'DATA_20',False,0,FloatToStr(f-1));
GetItem(framedoc,'DATA_22',False,0,FloatToStr(f-1.6));
GetItem(framedoc,'DATA_24',False,0,FloatToStr(f-2.4));
end;
end;
if HtmlElem.title ='价格2' then
begin
price := (HtmlElem as IHTMLInPutElement).value;
if TryStrToFloat(price,f) then
begin
GetItem(framedoc,'DATA_15',False,0,FloatToStr(f-0.2));
GetItem(framedoc,'DATA_17',False,0,FloatToStr(f-0.4));
GetItem(framedoc,'DATA_19',False,0,FloatToStr(f-0.6));
GetItem(framedoc,'DATA_21',False,0,FloatToStr(f-1.1));
GetItem(framedoc,'DATA_23',False,0,FloatToStr(f-1.9));
GetItem(framedoc,'DATA_25',False,0,FloatToStr(f-3.4));
end;
end;
if HtmlElem.title ='价格14' then
begin
price := (HtmlElem as IHTMLInPutElement).value;
if TryStrToFloat(price,f) then
begin
GetItem(framedoc,'DATA_36',False,0,FloatToStr(f-0.3));
GetItem(framedoc,'DATA_38',False,0,FloatToStr(f-0.6));
end;
end;
if HtmlElem.title ='价格15' then
begin
price := (HtmlElem as IHTMLInPutElement).value;
if TryStrToFloat(price,f) then
begin
GetItem(framedoc,'DATA_37',False,0,FloatToStr(f-0.3));
GetItem(framedoc,'DATA_39',False,0,FloatToStr(f-0.6));
end;
end;
end;
end
else
begin
searchDoc(framedoc);
end;
end;
...全文
292 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
linzhen6790 2013-07-27
  • 打赏
  • 举报
回复
不懂,帮支持吧
取昵称麻烦 2013-07-08
  • 打赏
  • 举报
回复
有分层的,请问是否有办法?
orxor 2013-06-05
  • 打赏
  • 举报
回复
是否分层??
取昵称麻烦 2013-06-03
  • 打赏
  • 举报
回复
自己顶上去,求高手帮忙,谢谢!

1,593

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧