2017-07-24 5 views
0

Ich versuche, ein bestimmtes Div-Element (d. H. Mit Attribut id="vung_doc") von einer Website zu bekommen, aber ich bekomme fast jedes Element. Hast du eine Ahnung, was los ist?Wie kann ich ein bestimmtes Div von der Website bekommen?

$doc = new DOMDocument; 

// We don't want to bother with white spaces 
$doc->preserveWhiteSpace = true; 

// Most HTML Developers are chimps and produce invalid markup... 
$doc->strictErrorChecking = false; 
$doc->recover = true; 

$doc->loadHTMLFile('http://lightnovelgate.com/chapter/epoch_of_twilight/chapter_300'); 

$xpath = new DOMXPath($doc); 

$query = "//*[@class='vung_doc']"; 


$entries = $xpath->query($query); 
var_dump($entries->item(0)->textContent); 

Antwort

0

Tatsächlich scheint es, dass, dass ein Element, das sowohl id hat und Klasse Attribute mit dem Wert vung_doc hat viele Absätze in seinem Textinhalt. Vielleicht denken Sie, dass jeder Absatz in seinem eigenen Element sein sollte.

<div id="vung_doc" class="vung_doc" style="font-size: 18px;"> 
    <p></p> 
    "Mayor song..." 

Im Screenshot am Ende der Post, habe ich eine Skizze Stil auf dieses Element, nur um zu zeigen, wie viele Absätze innerhalb dieses Elements ist.

Wenn Sie die Absätze trennen wollten, könnten Sie preg_split() verwenden, um auf jede neue Zeile Zeichen aufzuspalten:

$entries = $xpath->query($query); 

foreach($entries as $entry) { 
    $paragraphs = preg_split("/[\r\n]+/s",$entry->textContent); 
    foreach($paragraphs as $paragraph) { 
     if (trim($paragraph)) {    
      echo '<b>paragraph:</b> '.$paragraph; 
      break; 
     } 
    } 
} 

eine Demonstration dieses in this playground example See. Beachten Sie, dass, bevor Sie die HTML-Datei zu laden, libxml_use_internal_errors() aufgerufen wird, um die XML-Fehler zu unterdrücken:

libxml_use_internal_errors(true); 

Screenshot des Ziel div Element mit Umriss hinzugefügt:

screenshot

+0

Thank you very much! – sh33pS0ldat

0

ändern

$query = "//*[@class='vung_doc']"; 

zu

$query = "//*[@id='vung_doc']"; 
Verwandte Themen