php採擷程式
來源:互聯網
上載者:User
php採集程式
完成了大約10分鐘的採集後,出現fwrite(......)請求,出現警告,隨後出現丟包,有些網頁就出現抓取失敗的問題。。
前面10分鐘都沒問題,10分鐘之後,fwrite(....)發送請求出現警告的頻率慢慢變大
難道是被伺服器拒絕了請求?
錯誤提示資訊:
Notice: fwrite(): in E:\CodeEdit\php\http\001.php on line 200
對連結http://www.mmkao.com/Beautyleg/201410/6565_6.html發起請求
即將採集下一組
對連結http://www.mmkao.com/Beautyleg/201410/6559.html發起請求
對連結http://www.mmkao.com/Beautyleg/201410/6559_2.html發起請求
對連結http://www.mmkao.com/Beautyleg/201410/6559_3.html發起請求
對連結http://www.mmkao.com/Beautyleg/201410/6559_4.html發起請求
對連結http://www.mmkao.com/Beautyleg/201410/6559_5.html發起請求
對連結http://www.mmkao.com/Beautyleg/201410/6559_6.html發起請求
對連結http://www.mmkao.com/Beautyleg/201410/6559_7.html發起請求
對連結http://www.mmkao.com/Beautyleg/201410/6559_8.html發起請求
對連結http://www.mmkao.com/Beautyleg/201410/6559_9.html發起請求
對連結http://www.mmkao.com/Beautyleg/201410/6559_10.html發起請求
即將採集下一組
對連結http://www.mmkao.com/Beautyleg/201410/6549.html發起請求
對連結http://www.mmkao.com/Beautyleg/201410/6549_2.html發起請求
Notice: fwrite(): in E:\CodeEdit\php\http\001.php on line 200
對連結http://www.mmkao.com/Beautyleg/201410/6549_3.html發起請求
即將採集下一組
Notice: fwrite(): in E:\CodeEdit\php\http\001.php on line 200
對連結http://www.mmkao.com/Beautyleg/201410/6537.html發起請求
Notice: fwrite(): in E:\CodeEdit\php\http\001.php on line 200
有點疑惑,代碼的實現原理還是很簡單的,只是網路請求調試想對困難一些,有這方面經驗的,可以分享一下
代碼有點多?居然提示不能超過10000個字元。
代碼連結在這裡: http://blog.csdn.net/free_program_1314/article/details/41798199
------解決思路----------------------
你在 100 行處 $this->conn = fsockopen($this->ip,$this->port,$errno,$errstr,$this->timeout);
後只在 101 行判斷了是否串連成功,雖然不成功時會返回 false
但在 62 行調用時 $this->connect(); 並沒有檢查是否返回了 false
即無論串連是否成功,程式都會繼續執行。於是很自然的把隱患擴散了出去
你至少得在 200 行的 fwrite($this->conn,.... 前,判斷一下 $this->conn 是否是資源
而若 $this->connect() 失敗,就該轉到策略處理常式,還按正常流程進行是沒有意義的