Pregunta

Puedo acceder a algunos de los elementos de 'clase' con un

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

Sin embargo, hay otras etiquetas que necesito como span = id "firstarticle_0" y parece que no puedo encontrarla.

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

En algunos casos se devuelve algo, pero no es una matriz, o es una matriz con teclas vacías.

Desafortunadamente, no puedo usar VAR_DUMP para ver el objeto, ya que VAR_DUMP produce 1000 páginas de basura ilegible. El código se ve así.

<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">
¿Fue útil?

Solución

HTML DOM simple se puede usar fácilmente para encontrar un tramo con una clase específica.

Si quiere todos los span con class = ubicación, entonces:

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

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

Entonces haz algo como:

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

Funcionó para mí usando tu ejemplo, mi salida fue:

etiqueta = span, clase = ubicación: encontrado 1

0: Montañas de Georgia, Canadá

Espero que eso ayude ... y por favor, Simple HTML DOM es ideal para lo que hace y fácil de usar una vez que lo domina. Sigue intentándolo y tendrás varios ejemplos que solo usas una y otra vez. He raspado algunas páginas bastante locas y se vuelven más fáciles y más fáciles.

Otros consejos

Intenta usar esto. Funcionó para mí muy bien y extremadamente fácil de usar. http://code.google.com/p/phpquery/

Los documentos en el PHP Simple DOM Parser son irregulares al descifrar metaets de gráficos abiertos. Esto es lo que parece funcionar para mí:

<?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'];
  }
}
?>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top