Вопрос

Я могу получить доступ к некоторым элементам «класса» с помощью

$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'];
  }
}
?>
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top