1,593
社区成员
发帖
与我相关
我的任务
分享
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;