要怎麼樣抓取網路上的資料 |
答題得分者是:timhuang
|
delphi
初階會員 發表:52 回覆:64 積分:38 註冊:2002-05-21 發送簡訊給我 |
|
timhuang
尊榮會員 發表:78 回覆:1815 積分:1608 註冊:2002-07-15 發送簡訊給我 |
關於這個問題, 麻煩的地方是在擷取回來後的資料解析的部分!!
先利用 nmhttp 元件, 可以將你要的網址中的 html 碼抓回來,
接下來就是自行解析該 html 的內容. 以下為參考的程式, 解析的判定可能要自行再調整為更嚴謹一些即可!!
procedure TForm1.BitBtn1Click(Sender: TObject);
var
str: string;
news: string;
i, j: integer;
begin
NMHttp1.Get('http://tw.news.yahoo.com/');
str := NMHttp1.Body;
i := Pos('頭 條 新 聞', str);
if i > 0 then
str := copy ( str, i, length(str) - i 1);
i := Pos('', str);
if i > 0 then
str := copy ( str, i 17, length(str) - (i 17) 1);
j := Pos('', str);
if j > 0 then
news := copy ( str, 1, j-1);
Memo1.Lines.Text := news;
end;
|
hcker
中階會員 發表:95 回覆:118 積分:62 註冊:2003-02-09 發送簡訊給我 |
|
timhuang
尊榮會員 發表:78 回覆:1815 積分:1608 註冊:2002-07-15 發送簡訊給我 |
引言: 我實驗了一下,在memo什麼也沒有顯示抱歉. 忘了會沖 html 碼的關係. 第二個和第三個 Pos 中的目標字串, 我再修一下:
procedure TForm1.BitBtn1Click(Sender: TObject);
var
str: string;
news: string;
i, j: integer;
begin
NMHttp1.Get('http://tw.news.yahoo.com/');
str := NMHttp1.Body;
i := Pos('頭 條 新 聞', str);
if i > 0 then
str := copy ( str, i, length(str) - i 1);
i := Pos('', str);
if i > 0 then
str := copy ( str, i 17, length(str) - (i 17) 1);
j := Pos('', str);
if j > 0 then
news := copy ( str, 1, j-1);
Memo1.Lines.Text := news;
end;
|
hcker
中階會員 發表:95 回覆:118 積分:62 註冊:2003-02-09 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |