Как получить доступ к простым селекторам DOM?
Вопрос
Я могу получить доступ к некоторым элементам «класса» с помощью
$ret = $html->find('articleINfo'); and then print the first key of the returned array.
Тем не менее, есть другие теги, которые мне нужны, например, span = id "Firstarticle_0", и я не могу найти его.
$ret = $html->find('#span=id[ etc ]');
В некоторых случаях что -то возвращается, но это не массив, или это массив с пустыми ключами.
К сожалению, я не могу использовать var_dump, чтобы увидеть объект, поскольку var_dump производит 1000 страниц нечитаемого мусора. Код выглядит так.
<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">
Решение
Простой HTML DOM можно легко использовать, чтобы найти пролет с определенным классом.
Если все захочу, все с классом = местоположение тогда:
// create HTML DOM
$html = file_get_html($iUrl);
// get text elements
$aObj = $html->find('span[class=location]');
Тогда сделайте что -то вроде:
foreach($aObj as $key=>$oValue)
{
echo $key.": ".$oValue->plaintext."<br />";
}
Это сработало для меня, используя ваш пример, мой результат был:
метка = span, class = местоположение: найдено 1
0: горы Джорджии, Канада
Надеюсь, это поможет ... и, пожалуйста, простой HTML DOM отлично подходит для того, что он делает, и прост в использовании, как только вы получите его. Продолжайте пытаться, и у вас будет несколько примеров, которые вы просто используете снова и снова. Я соскребил несколько довольно сумасшедших страниц, и они становятся легче и проще.
Другие советы
Попробуйте использовать это. Работал на меня очень хорошо и очень прост в использовании. http://code.google.com/p/phpquery/
Документы на PHP Simple DOM PANCER SPICETTY при расшифровке метатеток с открытым графом. Вот что мне кажется:
<?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'];
}
}
?>