如何获取网页上的所有文件和网址列表
我正在尝试获取网页上的所有文件和网址列表。这与您在输入某个网址时在http://tools.pingdom.com上列出的列表类似。现在我试图通过使用cURL或wget在php中执行此操作。有没有人有关于如何获得这种文件/路径列表的建议?如何获取网页上的所有文件和网址列表
$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);
从受保护域收集页面时,这肯定会被阻止。避免使用'file_get_content','fopen','file'。通常允许cURL实现。 –
@Dexter Huinda,实际上我试图通过在一些URL上使用wget -p $ url来获取文件列表。但我发现wget只能从大多数网站获得index.html。你有什么建议可以改进我的wget代码吗?我用用户代理尝试了wget -p并随机等待设置,但它们不起作用。 –
$ url必须是网站的绝对路径 – timod
继续使用卷曲,以避免最安全块收割的内容时,开发你的代码。你实际上正在构建一种“谷歌机器人”,祝你好运。 –