利用WebBrowser读取网页中表格的数据.docx
《利用WebBrowser读取网页中表格的数据.docx》由会员分享,可在线阅读,更多相关《利用WebBrowser读取网页中表格的数据.docx(5页珍藏版)》请在冰豆网上搜索。
![利用WebBrowser读取网页中表格的数据.docx](https://file1.bdocx.com/fileroot1/2023-1/29/c0e17f8b-9742-4713-b73a-3e02bfae0ee7/c0e17f8b-9742-4713-b73a-3e02bfae0ee71.gif)
利用WebBrowser读取网页中表格的数据
利用WebBrowser读取网页中表格的数据
unitUnit1;interfaceuses
Windows,Messages,SysUtils,Variants,Classes,
Graphics,Controls,Forms,
Dialogs,MSHTML,StdCtrls,OleCtrls,SHDocVw;type
TForm1=class(TForm)
Button1:
TButton;
WebBrowser1:
TWebBrowser;
procedureFormCreate(Sender:
TObject);
procedureButton1Click(Sender:
TObject);
private
{Privatedeclarations}
public
{Publicdeclarations}
end;var
Form1:
TForm1;implementation{$R*.dfm}function
GetHtmlTableCell(aTable:
IHTMLTable;aRow,aCol:
Integer):
IHTMLElement;
var
Row:
IHTMLTableRow;begin
Result:
=nil;
ifaTable=nilthenExit;
ifaTable.rows=nilthenExit;
Row:
=aTable.rows.item(aRow,aRow)as
IHTMLTableRow;
ifRow=nilthenExit;
Result:
=Row.cells.item(aCol,aCol)asIHTMLElement;
end;functionGetHtmlTable(aDoc:
IHTMLDocument2;
aIndex:
Integer):
IHTMLTable;
var
list:
IHTMLElementCollection;
begin
Result:
=nil;
ifaDoc=nilthenExit;
ifaDoc.all=nilthenExit;
list:
=aDoc.all.tags('table')asIHTMLElementCollection;
iflist=nilthenExit;
Result:
=list.item(aIndex,aIndex)asIHTMLTable;
end;functionGetWebBrowserHtmlTableCellText(const
AWebBrowser:
TWebBrowser;
constTableIndex,RowIndex,ColIndex:
Integer;
varResValue:
string):
Boolean;
Docintf:
IHTMLDocument2;
tblintf:
IHTMLTable;
node:
IHTMLElement;
begin
ResValue:
=''
docintf:
=AWebBrowser.Documentas
IHTMLDocument2;
tblintf:
=GetHtmlTable(docintf,TableIndex);
node:
=GetHtmlTableCell(tblintf,RowIndex,ColIndex);
Result:
=node<>nil;
ifResultthen
ResValue:
=Trim(node.innerText);
end;functionGetHtmlTableRowHtml(aTable:
IHTMLTable;
aRow:
Integer):
IHTMLElement;
var
Row:
IHTMLTableRow;
begin
Result:
=nil;
ifaTable=nilthenExit;
ifaTable.rows=nilthenExit;
Row:
=aTable.rows.item(aRow,aRow)as
IHTMLTableRow;
ifRow=nilthenExit;
Result:
=RowasIHTMLElement;
end;functionGetWebBrowserHtmlTableCellHtml(const
AWebBrowser:
TWebBrowser;
constTableIndex,RowIndex,ColIndex:
Integer;
varResValue:
string):
Boolean;
var
Docintf:
IHTMLDocument2;
tblintf:
IHTMLTable;
node:
IHTMLElement;
begin
ResValue:
='';
docintf:
=AWebBrowser.Documentas
IHTMLDocument2;
tblintf:
=GetHtmlTable(docintf,TableIndex);
node:
=GetHtmlTableCell(tblintf,RowIndex,ColIndex);
Result:
=node<>nil;
ifResultthen
ResValue:
=Trim(node.innerHTML);
end;functionGeHtmlTableHtml(aTable:
IHTMLTable;
aRow:
Integer):
IHTMLElement;
Row:
IHTMLTableRow;
begin
Result:
=nil;
ifaTable=nilthenExit;
ifaTable.rows=nilthenExit;
Row:
=aTable.rows.item(aRow,aRow)as
IHTMLTableRow;
ifRow=nilthenExit;
Result:
=RowasIHTMLElement;
end;functionGetWebBrowserHtmlTableHtml(const
AWebBrowser:
TWebBrowser;
constTableIndex,RowIndex:
Integer;
varResValue:
string):
Boolean;
var
Docintf:
IHTMLDocument2;
tblintf:
IHTMLTable;
node:
IHTMLElement;
begin
ResValue:
='';
docintf:
=AWebBrowser.Documentas
IHTMLDocument2;
tblintf:
=GetHtmlTable(docintf,TableIndex);
node:
=GeHtmlTableHtml(tblintf,RowIndex);
Result:
=node<>nil;
ifResultthen
ResValue:
=node.innerHtml;
end;procedureTForm1.FormCreate(Sender:
TObject);
begin
WebBrowser1.Navigate('H:
\ReadTable\00.html');
end;procedureTForm1.Button1Click(Sender:
TObject);
var
ResValue:
string;
begin
ifGetWebBrowserHtmlTableCellText(WebBrowser1,0,0,0,ResValue)then
begin
ShowMessage(ResValue);
endelse
begin
ShowMessage('指定的表格不存在');
end;
end;end.