会者不难,求教。(200分)

  • 主题发起人 主题发起人 阿蛮
  • 开始时间 开始时间

阿蛮

Unregistered / Unconfirmed
GUEST, unregistred user!
已知url,怎样从indy的http控件返回的信息中取出信息?
是这样的,原web页面中有一表格,现想把表格中的所有数据赋值到StringGrid中,
行列一一对应,我不太对分析html。
 
用 Twebbroser 和 DHTML DOM 比较好!
 
如果你能确保URL能提出页面数据(有一些URL可能不行,比如ASP之类的),那就好办了,找出
一些关键的地方,比如填入到StringGrid中就行了.比如下面页面:
http://sports.sina.com.cn/chinaa/table2002/
如果你执行:
Memo1.Lines.Text:=IdHTTP1.Get('http://sports.sina.com.cn/chinaa/table2002/');
那么Memo1.Lines中已经有了页面数据,通过:
Memo1.Lines.Indexof('<table width=450 border=1 cellspacing=0 cellpadding=0 align=center>')+1
可以得到表首那一行,取出来,处理字符串,去掉"<"和">"中的内容后,分别填入StringGrid
中,其它行类似处理

---我就是用这种笨办法将我们的ADSL上网记录加到数据库中去的。
 
不会吧,indy带有一个http客户端组件的例子.
其实你用TClientSocket也能做到的.不过http请求要自己构造了,简单的
 
Web中的Table内容还是要自己分析的
 
procedure TForm1.Button1Click(Sender: TObject);
var
i, j: integer;
ovTable: OleVariant;
begin
ovTable := WebBrowser1.OleObject.Document.all.tags('TABLE').item(0);

for i := 0 to (ovTable.Rows.Length - 1) do
begin
for j := 0 to (ovTable.Rows.Item(i).Cells.Length - 1) do
begin
Memo1.Lines.Add(ovTable.Rows.Item(i).Cells.Item(j).InnerText;
end;
end;

end;

 
接受答案了.
 
后退
顶部