2010-07-20 6 views
2

J'aller chercher je utilise cet exemple pour aller chercher des liens d'un site Web:Xpath php liens

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"; 
} 

Il fonctionne bien; obtenir tous les liens; mais je ne peux pas obtenir le «titre» réel du lien; par exemple si j'ai:

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

Je veux être capable d'aller chercher le terme 'Google' aussi. Je suis un peu perdu et tout nouveau à xpath.

Répondre

2

Essayez ceci:

$link_title = $href->nodeValue; 
5

Vous êtes à la recherche de la "nodeValue" du textNode à l'intérieur du noeud "a". Vous pouvez obtenir cette valeur avec

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

exemple de travail complet:

<?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"; 
} 

Prints:


Lien stocké: www.test.de DONE