HTML网页Table解析,IHTMLDocument2、IHTMLElement、IHTMLElementCollection、IHTMLTABLE、IHTMLTableSection、IHTMLTableRow,表格body
procedure TForm27.Button1Click(Sender: TObject);
var
doc2: IHTMLDocument2;
doc3: IHTMLDocument3;
itableCollection, emtCollection: IHTMLElementCollection;
itable: IHTMLTABLE;
emt: IHTMLElement;
tabrow: IHTMLTableRow;
tabsec: IHTMLTableSection;
I, J, K: integer;
sid, s1, s2, s3, s4, s5, sText: string;
begin
ListBox1.Clear;
WebBrowser1.Navigate('http://zx.caipiao.163.com/trend/11xuan5/?beginPeriod=14092901&endPeriod=14100875&selectDate=4');
while WebBrowser1.Busy do
Application.ProcessMessages;
doc2 := self.WebBrowser1.Document as IHTMLDocument2;
doc3 := WebBrowser1.Document as IHTMLDocument3;
itableCollection := doc2.all.tags('table') as IHTMLElementCollection;
for I := 0 to itableCollection.Length - 1 do
begin
itable := itableCollection.item(I, 0) as IHTMLTABLE;
emt := itable as IHTMLElement;
if emt.id = 'chartsTable' then
begin
emt := itable.tBodies.item(1, 0) as IHTMLElement; // tbody cpdata
tabsec := emt as IHTMLTableSection;
tabsec.rows.Length;
for J := 0 to tabsec.rows.Length - 1 do
begin
tabrow := tabsec.rows.item(J, 0) as IHTMLTableRow;
if tabrow.cells.Length < 10 then
Continue;
sid := (tabrow.cells.item(0, 0) as IHTMLElement).innerText; // 14100718
s1 := (tabrow.cells.item(2, 0) as IHTMLElement).innerText; // 01
s2 := (tabrow.cells.item(3, 0) as IHTMLElement).innerText; // 02
s3 := (tabrow.cells.item(4, 0) as IHTMLElement).innerText; // 03
s4 := (tabrow.cells.item(5, 0) as IHTMLElement).innerText; // 04
s5 := (tabrow.cells.item(6, 0) as IHTMLElement).innerText; // 05
sText := Format('%s %s %s %s %s %s', [sid, s1, s2, s3, s4, s5]);
ListBox1.Items.Add(sText);
end;
end;
end;
end;