Как вы получаете доступ к селекторам Simple DOM? - PullRequest
2 голосов
/ 29 апреля 2011

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

$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">

Ответы [ 3 ]

0 голосов
/ 02 июля 2011

Простой HTML DOM может быть легко использован для поиска диапазона с определенным классом.

Если вы хотите, чтобы все диапазоны с class = location, тогда:

// 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 />";
}

Это сработало для меня, используя ваш пример, мой вывод был:

label = span, class = location: Found 1

0: ГОРЫ ГРУЗИИ, Канада

Надеюсь, это поможет ... и, пожалуйста, Simple HTML DOM отлично подходит для того, что он делает, и его легко использовать, когда вы освоите его.Продолжайте пробовать, и у вас будет несколько примеров, которые вы будете использовать снова и снова.Я поцарапал несколько довольно сумасшедших страниц, и они становятся все легче и проще.

0 голосов
/ 27 января 2012

Документы в парсере PHP Simple DOM не очень удобны при расшифровке мета-тегов Open Graph.Вот что мне кажется:

<?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'];
  }
}
?>
0 голосов
/ 23 мая 2011

Попробуйте использовать это. Работал для меня очень хорошо и чрезвычайно прост в использовании. http://code.google.com/p/phpquery/

...