2010-07-20 3 views
2

나는 웹 사이트에서 링크를 가져 오기 위해이 예제를 사용하고 있습니다 : 그것은 잘 작동XPath는 PHP를 가져 오기 링크

http://www.merchantos.com/makebeta/php/scraping-links-with-php/

$xpath = new DOMXPath($dom); 
$hrefs = $xpath->evaluate("/html/body//a"); 

for ($i = 0; $i < $hrefs->length; $i++) { 
    $href = $hrefs->item($i); 
    var_dump($href); 
    $url = $href->getAttribute('href'); 
    echo "<br />Link stored: $url"; 
} 

을; 모든 연결을 얻는; 하지만 링크의 실제 '제목'을 얻을 수는 없습니다. 예를 들면 :

<a href="www.google.com">Google</a> 

나는 'Google'용어도 가져올 수 있기를 원합니다.

저는 길을 잃어 버렸고 xpath에 새로 입문했습니다.

답변

2

이 시도 : 당신은 "A"노드 내부의 Textnode의 "nodeValue를"찾고있는

$link_title = $href->nodeValue; 
5

. 당신은

$title = $href->firstChild->nodeValue; 

전체 작업 예제를 통해 그 값을 얻을 수 있습니다 :

<?php 
$dom = DomDocument::loadHTML("<html><body><a href='www.test.de'>DONE</a></body></html>"); 

$xpath = new DOMXPath($dom); 
$hrefs = $xpath->evaluate("/html/body//a"); 

for ($i = 0; $i < $hrefs->length; $i++) { 
    $href = $hrefs->item($i); 
    $url = $href->getAttribute('href'); 
    $title = $href->firstChild->nodeValue; 
    echo "<br />Link stored: $url $title"; 
} 

인쇄 :


링크 저장 : www.test.de는

를 DONE