2016-06-15 1 views
0

주어진 사이트에서 모든 하이퍼 링크를 얻고 싶습니다. 그래서이 코드를 작성합니다. 하지만 제대로 작동하지 않습니다. 지정된 URL의 모든 하이퍼 링크 만 보여줍니다. 하지만 주어진 사이트의 모든 하이퍼 링크를 얻고 싶습니다. 예 주어진 URL의 전체 페이지 href를 얻으십시오

<?php 
function getAlllinks($site){ 
$link = file_get_contents($site); 
$dom = new DOMDocument; 
@$dom->loadHTML($link); 
$links = $dom->getElementsByTagName('a'); 

foreach ($links as $link){ 

    $url = $link->getAttribute('href'); 

if($url[0]!="#" && $url[0]!=" "){ 

    echo $url. '<br>'; 
    getAlllinks($url); 

    } 

} 

}getAlllinks("http://www.example.com"); 
?> 

여기
<html> 
<body> 
    <a href="index.php">Homepage</a> 
    <a href="contact.php">Contact</a> 
</body> 
</html> 

http://www.example.com

index.php를 먼저하고 contact.php 또는 접점의 모든 링크를 표시한다 다음 하이퍼 링크와의 index.php contact.php &을 보여줄 것이다. PHP는 http://www.example.com/contact.php

+0

검색 – SML

답변

0

일 수 있다고 생각합니다. 전체 웹 사이트를 크롤링하여 모든 링크를 수집합니다. 귀하의 코드 예제는 그렇게 할 수 없습니다. 당신이 원하는 것은 각 페이지를로드하고, 각 페이지의 모든 링크와, 해당 링크의 반복을 가져옵니다. 추가 정보를

체크 아웃이 링크 : 어떻게 PHP를 사용하여 웹 사이트를 크롤링하는

How do I make a simple crawler in PHP?

https://en.wikipedia.org/wiki/Web_crawler http://phpcrawl.cuab.de/example.html

관련 문제