Come si accede selettori DOM semplici?
Domanda
posso accedere ad alcune delle voci di 'classe' con un
$ret = $html->find('articleINfo'); and then print the first key of the returned array.
Tuttavia, ci sono altri tag che mi servono come span class = id "firstArticle_0" e io non riesco a trovarlo.
$ret = $html->find('#span=id[ etc ]');
In alcuni casi viene restituito qualcosa, ma non è un array, o è un array con le chiavi vuote.
Purtroppo non posso usare var_dump per vedere l'oggetto, in quanto produce var_dump 1000 pagine di spazzatura illeggibile. Il codice simile a questo.
<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">
Soluzione
Simple HTML DOM può essere usato facilmente per trovare un arco con una classe specifica.
Se vuole tutto campata è con class = posizione, allora:
// create HTML DOM
$html = file_get_html($iUrl);
// get text elements
$aObj = $html->find('span[class=location]');
Poi fare qualcosa di simile:
foreach($aObj as $key=>$oValue)
{
echo $key.": ".$oValue->plaintext."<br />";
}
Ha funzionato per me con il tuo esempio la mia uscita era:
label = span class = posizione: Trovato 1
0: Georgia Mountains, Canada
La speranza che aiuta ... e per favore Simple HTML DOM è grande per quello che fa e facile da usare una volta a ottenere il blocco di esso. Continuare a provare e si avrà una serie di esempi che è sufficiente utilizzare più e più volte. Ho raschiato alcune pagine piuttosto folle e ottengono più facile e più facile.
Altri suggerimenti
Prova ad usare questo. Ha lavorato per me molto bene ed estremamente facile da usare. http://code.google.com/p/phpquery/
La documentazione sul PHP semplice parser DOM sono spotty sulla decifrazione Open Graph meta tag. Ecco cosa sembra funzionare per me:
<?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'];
}
}
?>