HTML网页Table解析

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;
原文地址:https://www.cnblogs.com/cb168/p/4012540.html