提取网站的信息和遍历指定的连接(100分)

  • 主题发起人 主题发起人 oldfrog7792388
  • 开始时间 开始时间
O

oldfrog7792388

Unregistered / Unconfirmed
GUEST, unregistred user!
我想写个程序对www.china91.com把它的提供的公司信息保存如数据库,我现在做到在指定的页开始提取所有需要的连接,但是表格分析上面有问题,因为要分析表格还要分析连接,然后有连接的载入取得数据存入数据库,由于有分页,还要对分页遍历,请给出表格分析的可行性代码,如果给出好的算法加100
 
用httpscan好像能满足你的要求
 
我连接地址可以提取,主要还是表格的提取和表格连接的提取,httpscan我用了,不能提取表格
 
难道没有人愿意回答么
 
//uses SHDocVw,mshtml,
procedure TForm1.SaveMemo(sid:string);
var
ovTable: OleVariant;
st:string;
begin
try
ovTable:= Web1.OleObject.Document.all.tags('TABLE').item(10);
st:=ovTable.Rows.Item(0).Cells.Item(0).InnerText;
st:=trim(Copy(st,7,200));
if true then
begin
try
ADO2.Append;
ADO2.Fields[1].Value :=st;
ADO2.Fields[14].Value :=sid;
ovTable:= Web1.OleObject.Document.all.tags('TABLE').item(13);
ADO2.Fields[12].Value :=ovTable.Rows.Item(0).Cells.Item(0).InnerText; ovTable:= Web1.OleObject.Document.all.tags('TABLE').item(15);
ADO2.Fields[4].Value :=ovTable.Rows.Item(0).Cells.Item(1).InnerText;
ADO2.Fields[2].Value :=ovTable.Rows.Item(2).Cells.Item(1).InnerText;
ADO2.Fields[3].Value :=ovTable.Rows.Item(3).Cells.Item(1).InnerText;
ADO2.Fields[6].Value :=ovTable.Rows.Item(4).Cells.Item(1).InnerText;
ovTable:= Web1.OleObject.Document.all.tags('TABLE').item(12);
ADO2.Fields[5].Value :=ovTable.Rows.Item(0).Cells.Item(0).InnerText;
ovTable:= Web1.OleObject.Document.all.tags('TABLE').item(20);
ADO2.Fields[7].Value :=ovTable.Rows.Item(0).Cells.Item(1).InnerText;
ADO2.Fields[8].Value :=ovTable.Rows.Item(1).Cells.Item(1).InnerText;
ADO2.Fields[9].Value :=ovTable.Rows.Item(4).Cells.Item(1).InnerText;
ADO2.Fields[10].Value :=ovTable.Rows.Item(2).Cells.Item(1).InnerText;
ovTable:= Web1.OleObject.Document.all.tags('TABLE').item(22);
ADO2.Fields[11].Value :=ovTable.Rows.Item(0).Cells.Item(1).InnerText;
ADO2.UpdateCursorPos;
except end;
ADO2.Prior;
end;
except memo3.Lines.Add('Get ERROR'); end;
end;


取单元格html代码:ovTable.Rows.Item(0).Cells.Item(1).Innerhtml;
 
那如果提取innerhtml中的链接有什么好办法,我不想用字符串查找
 
var
   doc:IHTMLDocument2;
   all:IHTMLElementCollection;
   len,i:integer;
   item:OleVariant;
  begin
   doc:=WebBrowser1.Document as IHTMLDocument2;
   all:=doc.Get_links;             //doc.Links亦可
   len:=all.length;
   for i:=0 to len-1 do begin
    item:=all.item(i,varempty);        //EmpryParam亦可
    memo1.lines.add(item.href);
   end;
  end;

如果你已取得htmlcode,可装入WebBrowser1再提取
 
谢谢,我正在找这个。
 
接受答案了.
 
后退
顶部