線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:2934
推到 Plurk!
推到 Facebook!

為什麼我用WebBrowser抓一半網頁資料而已

答題得分者是:Stallion
17kobe
初階會員


發表:86
回覆:73
積分:31
註冊:2007-07-30

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-08-10 12:46:26 IP:60.250.xxx.xxx 訂閱
為什麼我讀都只能讀一半資料,網頁下方還有很多資料沒讀到,而且 slTemp.text := HTMLDoc.body.innertext;改 slTemp.text := HTMLDoc.body;就可以發現多Tbody,但網頁原始碼好像實際是沒有的。不知道有沒有可以幫我解答,為什麼不能全部讀完網頁的資料呢?


//// 使用方法,開啟專案
//// 加入一個TWebBrowser TButton TMemo,然後貼上下列程式碼
//// 之後在元件TWebBrowser事件WebBrowser1DocumentComplete 及 TButton元件上點兩下,即可


//// 程式碼
unit Unit1;

interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, IdBaseComponent, IdComponent, IdTCPConnection,
IdTCPClient, IdHTTP, OleCtrls, SHDocVw, mshtml, Grids, ComCtrls, StrUtils;

type
TForm1 = class(TForm)
Button1: TButton;
Memo1: TMemo;
WebBrowser1: TWebBrowser;

procedure WebBrowser1DocumentComplete(ASender: TObject;
const pDisp: IDispatch; var URL: OleVariant);

procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
IsComplete: boolean;
logon:boolean;

implementation
{$R *.dfm}
procedure TForm1.WebBrowser1DocumentComplete(ASender: TObject;
const pDisp: IDispatch; var URL: OleVariant);
var docs,edits : olevariant;
data:string;
begin
IsComplete := True;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
slTemp: TStringList;
HTMLDoc: IHTMLDocument2;
begin
IsComplete := False;
Cursor := crHourGlass;
webbrowser1.Navigate('http://www.stockq.org/');
while not IsComplete do
application.ProcessMessages;
Cursor := crDefault;
HTMLDoc := webbrowser1.Document as IHTMLDocument2;
slTemp := TStringList.Create;
slTemp.text := HTMLDoc.body.innertext;;
Memo1.Lines.Text := slTemp.text;

end;
end.
///

====================================================================
剛剛又試一下感覺一下可以一下不可以,是什麼原因呢,還是還要旗標判斷呢

編輯記錄
17kobe 重新編輯於 2007-08-10 12:57:00, 註解 無‧
Stallion
版主


發表:52
回覆:1600
積分:1995
註冊:2004-09-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-08-10 13:17:47 IP:211.22.xxx.xxx 未訂閱
單純抓網頁嗎?參考一下這裡
17kobe
初階會員


發表:86
回覆:73
積分:31
註冊:2007-07-30

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-08-10 13:45:30 IP:60.250.xxx.xxx 訂閱
我的意思是網頁都只有抓一半的原始碼,不知道是網頁還沒跑完就抓了,還是因為什麼原因。
17kobe
初階會員


發表:86
回覆:73
積分:31
註冊:2007-07-30

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-08-10 14:46:20 IP:220.132.xxx.xxx 訂閱
有點懷疑是因為自動更新的原故,不然每次都不相同
而且我試著用idhttp先抓下網頁來,結果也是一樣,有時候抓完,有時候沒抓完。
編輯記錄
17kobe 重新編輯於 2007-08-10 16:23:24, 註解 無‧
系統時間:2024-04-25 19:46:11
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!