简单 html dom 解析器无法获得正确的值
simple html dom parser can't get correct value
进行抓取
include 'simple_html_dom.php';
function getSslPage($url) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_REFERER, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$result = curl_exec($ch);
curl_close($ch);
return $result;
}
$html = getSslPage('http://forum.xda-developers.com/note-4-sprint');
$result = $html->find('.forumbox-header',0); //error here
echo $result;
我执行输出将是 Sprint Samsung Galaxy Note 4,它有 class of forumbox-header。我不知道我在那里说 Fatal error: Call to a member function find() on a non-object
时出错。
您的 getSslPage
函数 returns a string
($url 页面的 html 源代码)。
虽然返回值是一个字符串,但您将其视为一个对象 $html->find
,因此会出现错误。
Fatal error: Call to a member function find() on a non-object
简单 Html DOM 解析器库有 2 个函数来创建 DOM 对象:
file_get_html
- 从 URL 创建一个 DOM 对象
str_get_html
- 从字符串 创建一个DOM对象
因为您已经有了 HTML 字符串,只需按以下方式编辑您的代码:
$html = str_get_html($html);
$result = $html->find('.forumbox-header',0);
include 'simple_html_dom.php';
function getSslPage($url) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_REFERER, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$result = curl_exec($ch);
curl_close($ch);
return $result;
}
$html = getSslPage('http://forum.xda-developers.com/note-4-sprint');
$result = $html->find('.forumbox-header',0); //error here
echo $result;
我执行输出将是 Sprint Samsung Galaxy Note 4,它有 class of forumbox-header。我不知道我在那里说 Fatal error: Call to a member function find() on a non-object
时出错。
您的 getSslPage
函数 returns a string
($url 页面的 html 源代码)。
虽然返回值是一个字符串,但您将其视为一个对象 $html->find
,因此会出现错误。
Fatal error: Call to a member function find() on a non-object
简单 Html DOM 解析器库有 2 个函数来创建 DOM 对象:
file_get_html
- 从 URL 创建一个 DOM 对象
str_get_html
- 从字符串 创建一个DOM对象
因为您已经有了 HTML 字符串,只需按以下方式编辑您的代码:
$html = str_get_html($html);
$result = $html->find('.forumbox-header',0);