2012-06-20 39 views
-1

我正在嘗試獲取網頁上的所有文件和網址列表。這與您在輸入某個網址時在http://tools.pingdom.com上列出的列表類似。現在我試圖通過使用cURL或wget在php中執行此操作。有沒有人有關於如何獲得這種文件/路徑列表的建議?如何獲取網頁上的所有文件和網址列表

+1

繼續使用捲曲,以避免最安全塊收割的內容時,開發你的代碼。你實際上正在構建一種「谷歌機器人」,祝你好運。 –

回答

0
$url="http://wwww.xyz.com"; 
$data=file_get_contents($url); 
$data = strip_tags($data,"<a>"); 
$d = preg_split("/<\/a>/",$data); 
foreach ($d as $k=>$string){ 
    if(strpos($string, "<a href=") !== FALSE){ 
     $string = preg_replace("/.*<a\s+href=\"/sm","",$u); 
     $stringu = preg_replace("/\".*/","",$string); 
     $url = $string 
    } 
} 

編輯:一旦你有一個字符串使用正則表達式的文檔,以獲取所有的URL

function getAllUrls($string) 
{ 
    $regex = '/https?\:\/\/[^\" ]+/i'; 
    preg_match_all($regex, $string, $matches); 
    return ($matches[0]); 
} 

$url_array = getAllUrls($string); 
print_r($url_array); 
+1

從受保護域收集頁面時,這肯定會被阻止。避免使用'file_get_content','fopen','file'。通常允許cURL實現。 –

+0

@Dexter Huinda,實際上我試圖通過在一些URL上使用wget -p $ url來獲取文件列表。但我發現wget只能從大多數網站獲得index.html。你有什麼建議可以改進我的wget代碼嗎?我用用戶代理嘗試了wget -p並隨機等待設置,但它們不起作用。 –

+0

$ url必須是網站的絕對路徑 – timod

相關問題