【发布时间】:2015-05-10 11:19:18
【问题描述】:
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,它具有 forumbox-header 类。我不知道我在那儿说Fatal error: Call to a member function find() on a non-object 时出错了。
【问题讨论】:
-
$result 是一个字符串,因为它从您请求的 URL 获取返回值。它不是一个对象。
-
另外,鉴于提供的代码,看起来您根本没有真正使用简单的 html dom。附:也许使用内置的DOM functionality 也值得一看。
-
@JonStirling 你确定吗?当我回显 $html;我加载了请求的页面,而不是字符串。
-
是的,很确定。试试
var_dump($html);,将输出添加到您的问题中。 -
$result = curl_exec($ch);返回字符串(html页面)。由于你得到一个字符串,你可以使用该库的str_get_html函数。$result = str_get_html($html);
标签: php web-scraping simple-html-dom