如何获取网页上的所有文件和网址列表

问题描述:

我正在尝试获取网页上的所有文件和网址列表。这与您在输入某个网址时在http://tools.pingdom.com上列出的列表类似。现在我试图通过使用cURL或wget在php中执行此操作。有没有人有关于如何获得这种文件/路径列表的建议?如何获取网页上的所有文件和网址列表

+1

继续使用卷曲,以避免最安全块收割的内容时,开发你的代码。你实际上正在构建一种“谷歌机器人”,祝你好运。 –

$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

,或者您可以使用此功能。

Match URLs with regex

Use regex with PHP