Frage

Ich kann mit a auf einige der "Klasse" -Positionen zugreifen

$ret = $html->find('articleINfo'); and then print the first key of the returned array.

Es gibt jedoch andere Tags, die ich wie span = id "firstArticle_0" brauche, und ich kann es nicht finden.

$ret = $html->find('#span=id[ etc ]');

In einigen Fällen wird etwas zurückgegeben, aber es ist kein Array oder ein Array mit leeren Schlüssel.

Leider kann ich VAR_DUMP nicht verwenden, um das Objekt anzuzeigen, da var_dump 1000 Seiten mit unleserlichem Müll erzeugt. Der Code sieht so aus.

<div id="articlething"> 
    <p class="byline">By Lord Byron and <a href="www.marriedtothesea.com">Alister Crowley</a></p> 
    <p> 
    <span class="location">GEORGIA MOUNTAINS, Canada</span> | 
    <span class="timestamp">Fri Apr 29, 2011 11:27am EDT</span> 
    </p> 
</div> 
<span id="midPart_0"></span><span class="mainParagraph"><p><span        class="midLocation">TUSCALOOSA, Alabama</span> - Who invented cheese? Everyone wants to know. They held a big meeting. Tom Cruise is a scientologist. </p> 

</span><span id="midPart_1"></span><p>The president and his family visited Chuck-e-cheese in the morning </p><span id="midPart_2"></span><p>In Russia, 900 people were lost in the balls.</p><span id="midPart_3">
War es hilfreich?

Lösung

Einfaches HTML -DOM kann leicht verwendet werden, um eine Spanne mit einer bestimmten Klasse zu finden.

Wenn alle Spannweiten mit class = location sind, dann:

// create HTML DOM
$html = file_get_html($iUrl);

// get text elements
$aObj = $html->find('span[class=location]');

Dann machen Sie so etwas wie:

foreach($aObj as $key=>$oValue)
{
   echo $key.": ".$oValue->plaintext."<br />";
}

Es hat bei mir bei Ihrem Beispiel funktioniert. Mein Ausgang war:

label = span, class = location: gefunden 1

0: Georgia Mountains, Kanada

Ich hoffe, das hilft ... und bitte einfach html dom ist großartig für das, was es tut und einfach zu bedienen, sobald Sie den Dreh raus haben. Versuchen Sie es weiter und Sie werden eine Reihe von Beispielen haben, die Sie immer wieder verwenden. Ich habe einige ziemlich verrückte Seiten abgeschafft und sie werden immer einfacher.

Andere Tipps

Versuchen Sie dies. Hat sehr gut für mich gearbeitet und extrem einfach zu bedienen. http://code.google.com/p/phpquery/

Die Dokumente des PHP Simple DOM -Parsers entschlüsseln mit offenen Graph -Meta -Tags. Hier ist, was für mich zu funktionieren scheint:

<?php
// grab the contents of the page
$summary = file_get_html($url);

// Get image possibilities (for example)

$img = array();

// First, if the webpage has an og:image meta tag, it's easy:
if ($summary->find('meta[property=og:image]')) {
  foreach ($summary->find('meta[property=og:image]') as $e) {
    $img[] = $e->attr['content'];
  }
}
?>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top