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

利用 http.get 抓取網頁資料,要如何解決 socket 10054 問題

答題得分者是:u8821003
fish1031
一般會員


發表:2
回覆:2
積分:0
註冊:2006-08-18

發送簡訊給我
#1 引用回覆 回覆 發表時間:2006-08-20 01:18:48 IP:220.132.xxx.xxx 訂閱

想請教各位大大 :


小弟利用 http.get 抓取網頁資料,但常不定時產生 socket 10054


尋求很多方法仍無法解決,希望有大大仍為我找出一個好的解決方法


謝謝!!

fish1031
一般會員


發表:2
回覆:2
積分:0
註冊:2006-08-18

發送簡訊給我
#2 引用回覆 回覆 發表時間:2006-09-13 00:54:14 IP:220.132.xxx.xxx 訂閱

repeat
fs:=Tfilestream.Create('test.htm',fmCreate);
try
http.Get(webaddress,fs);
except
sleep(1000);
flag1:=false;
end;
fs.free;
until (flag1) or (i>=3) ;

上面是其中程式抓取網頁的部份

而程式是每 30 秒會重新抓取一次

有時就是會產生 socket 10054 的問題

不知跟 timeout 是否有關聯

有人可以告訴我要如何解決或者使用別種抓取網頁的方式嗎?

u8821003
一般會員


發表:12
回覆:9
積分:9
註冊:2005-04-02

發送簡訊給我
#3 引用回覆 回覆 發表時間:2006-09-14 18:24:48 IP:61.220.xxx.xxx 未訂閱

你的repeat.... until 感覺怪怪ㄉ耶!

若HTTP.GET若不成功的話,flag1就永遠=False; 而 i 參數在repeat中看不到

這樣永遠都跳不出來阿??

若我有說錯,就另請指教囉!

===================引 用 文 章===================

repeat
fs:=Tfilestream.Create('test.htm',fmCreate);
try
http.Get(webaddress,fs);
except
sleep(1000);
flag1:=false;
end;
fs.free;
until (flag1) or (i>=3) ;

上面是其中程式抓取網頁的部份

而程式是每 30 秒會重新抓取一次

有時就是會產生 socket 10054 的問題

不知跟 timeout 是否有關聯

有人可以告訴我要如何解決或者使用別種抓取網頁的方式嗎?

fish1031
一般會員


發表:2
回覆:2
積分:0
註冊:2006-08-18

發送簡訊給我
#4 引用回覆 回覆 發表時間:2006-09-14 19:36:31 IP:61.220.xxx.xxx 訂閱

===================引 用 文 章===================

repeat
fs:=Tfilestream.Create('test.htm',fmCreate);
try
http.Get(webaddress,fs);
except
sleep(1000);
flag1:=false;

i:=i 1;
end;
fs.free;
until (flag1) or (i>=3) ;

上面是其中程式抓取網頁的部份

而程式是每 30 秒會重新抓取一次

有時就是會產生 socket 10054 的問題

不知跟 timeout 是否有關聯

有人可以告訴我要如何解決或者使用別種抓取網頁的方式嗎?

在貼文的時候 刪太快沒去注意到,原始碼是有 i 的變數存在

但這段程式平常都很正整,但若有時遇到網路較慢時,就容易發 socket 10054 問題

一直找不到解決的方法所以才想找各位大大賜教

系統時間:2024-04-29 5:04:17
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!