2014-06-06 2 views
1

웹 사이트의 웹 페이지 (예 : example.com)에서 시작하여 동일한 도메인에있는이 페이지의 모든 링크를 찾습니다.페이지와 동일한 도메인에있는 페이지에서 링크 찾기

이 페이지에는 example.com/hello.php, facebook.com/hello.php가 있다고 가정 해 보겠습니다. 그래서 나는 www.example.com/hello.php만을 열거하고 싶습니다.

PHP 간단한 HTML DOM 파서 (simplehtmldom.sourceforge.net/)를 사용하고 있습니다.

$html = file_get_html('http://www.example.com/'); 
// Find all links 
foreach($html->find('a') as $element) { 
    $uri = $element->href; 
    //Now how to check if $uri belongs to same domain? 
} 

답변

0

가정, 모든 URL은 http://example.com/hello.php에서와 같이 * URL이 이미 절대입니다. 그런 다음 parse_url을 사용하여 모든 URL의 호스트를 가져옵니다.

php > $url = "http://example.com/hello.php"; 
php > print parse_url($url, PHP_URL_HOST); 
example.com 

이제 링크의 호스트와 현재 크롤링중인 사이트의 호스트를 비교하면됩니다. 호스트를 비교하는 것만으로는 충분하지 않은 경우 호스트에서 도메인을 추출해야합니다. 그것을위한 규칙이 없기 때문에 이것은 쉽지 않습니다. 그래도이 작업에 필요한 모든 정보가 https://www.publicsuffix.org/에 있습니다. 여기에는 PHP URL 구문 분석기 라이브러리가 포함됩니다.

* (절대 도메인이 아닌 도메인은 물론 동일한 도메인에 있으므로 의사 결정에 필요하지 않습니다.)

관련 문제