使用php在DOM traverse中需要帮助

时间:2014-11-28 11:54:20

标签: php dom simple-html-dom

我尝试使用以下代码抓取此论坛的内容帖子 https://forum.lowyat.net/topic/3424996

$rows = $html->find('.post_table');
$array = array();
foreach($rows as $go){
    $post_text = $go->find('.post_td_right > .post_text')->innertext;
    $array[]= array(
        'content'=> $post_text
    );
}

echo json_encode($array);

我var_dump($ rows)它是一个对象,我真的不知道为什么是错误。需要你的帮助!

1 个答案:

答案 0 :(得分:1)

论坛通常有一个RSS源来帮助满足这种要求。事实证明,您正在抓取的网站为您提供此服务:http://rss.forum.lowyat.net/topic/3424996

我们现在可以使用XML解析器而不是DOM刮刀,这将更加高效。例如;

<?php

$rss = file_get_contents('http://rss.forum.lowyat.net/topic/3424996'); //Or use cURL
$xml = simplexml_load_string($rss);

$array = array();

foreach($xml->channel->item as $posts) {
    $post = (array) $posts->description;
    $array[] = htmlentities($post[0]);
}

echo "<pre>";
echo print_r($array);
echo "</pre>";