2016-05-23 33 views
0

我想從頁面中抓取數據,試圖在PHP中使用CURL。PHP curl連接到頁面等待重定向

問題是,該網站有時會承受沉重的負擔,並給我一個「只需一會兒......您的請求正在處理中......」的消息,並每隔5秒進行一次元刷新,直到服務器可用。這可能是多次刷新。

我曾嘗試加入

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); 

這並沒有幫助,因爲它刷新多次。

有什麼辦法讓它等到沒有更多刷新或確認它已經以某種方式到達下一頁?

捲曲腳本是curently

$ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, $url); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); 
    $data = curl_exec($ch); 
    curl_close($ch); 

任何幫助表示讚賞。 如果這不能用捲曲完成,你會建議另一種方法?

+0

請發佈元刷新。 –

+0

這隻能通過重複請求來完成。確保您連接的服務符合您的重複請求。畢竟 – sba

+0

是他們允許刮削的重載。 – md123

回答

0

你可以嘗試這樣的:

<?php 
    $data= "" ; 
    $retries = 0; 
    while(preg_match('/<meta http-equiv="refresh"/im', $data) or $retries < 5){ 
     $ch = curl_init(); 
     curl_setopt($ch, CURLOPT_URL, $url); 
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
     curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); 
     $data = curl_exec($ch); 
     curl_close($ch); 
     if(!preg_match('/<meta http-equiv="refresh"/im', $data)) 
     { 
      break; 
     } 
     $retries++; 
     sleep(2); 
    } 
?> 

以上將嘗試解析html 5次,等待秒重試之間,UTIL的html不包含<meta http-equiv="refresh

+0

這只是重新提交請求。添加到服務器負載。我希望它留在單個連接上。 – md123

+0

你不能那樣做。 –