次のPHPスクリプトを使用して、特定のページのすべてのリンクを取得しますが、ウェブサイト全体のすべてのリンクを取得しようとしています。cURLを使用してウェブサイト内のすべてのリンクを取得する(ページだけでなく)
<?php
function urlLooper($url){
$urlArray = array();
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
$regex='|<a.*?href="(.*?)"|';
preg_match_all($regex,$result,$parts);
$links=$parts[1];
foreach($links as $link){
array_push($urlArray, $link);
}
curl_close($ch);
foreach($urlArray as $value){
echo $value . '<br />';
}
}
$url = 'http://www.justfundraising.com/';
urlLooper($url);
?>
ウェブサイト上のすべてのリンクを取得するにはcURL(または率直に言って、他の方法)を使用する方法はありますか?私はあなたが不思議に思っている場合に備えてサーバーにアクセスできます。
私の考えは、ホームページからすべてのリンクを生成してから、それらのリンクを同じ関数に渡して、重複を無視してリンクの新しいリストを取得することでした。私はそのようにしてすべてのページを手に入れます。
ご協力いただければ幸いです!
あなたはページの取得と解析が容易になり、 'phpQuery'を調査することができ、手動で未満面倒な簡単なクモを構築することができますカールとテキスト抽出のアプローチ。 – mario
あなたのスクリプトはちょうど私を大いに助けました、thankyou =) – RayZor
私は[this](http://blog.viktorkelemen.com/2011/07/get-links-from-page-with-bash.html)を使いました。それが助けになるかどうかは分かりません。 –