我有一个非常奇怪的问题,它只发生在我的本地 XAMPP 安装上。我有一个脚本来从页面中提取数据,使用 curl 将其打开为 googlebot,然后使用str_get_html()
from simple_html_dom 提取 DOM 元素。
我收到以下错误:
Fatal error: Call to a member function find() on a non-object in C:\xampp\htdocs\scraper\facebook.php on line 49
我的函数的顶部在这里(这个函数很长,所以不会全部发布,只会发布到错误):
function get_facebook_data($link)
{
$username = "";
$title = "";
$location = "";
$email = "";
$description = "";
$userAgent = 'Googlebot/2.1 (http://www.googlebot.com/bot.html)';
$url = get_facebook_page($link);
// THE ABOVE VARIABLE IS A VALID URL IF I ECHO IT WILL GIVE: http://www.facebook.com/pages/The-Pencil-Test/179417698765073?id=179417698765073&sk=info BEFORE GIVING THE ERROR
$ch = curl_init();
curl_setopt($ch, CURLOPT_USERAGENT, $userAgent);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_FAILONERROR, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_AUTOREFERER, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 100);
$html = curl_exec($ch);
$cache = $html;
$html2 = str_get_html($cache);
$data = $html2->find("span.uiButtonText");
//THE LINE ABOVE IS THROWING THE ERROR
我的脚本在在线环境中运行良好,这让我相信这是一个 xampp 问题,看起来 curl 在本地运行时出现了问题。我已curl
在 xampp 中启用,它在 phpinfo() 中显示为启用;可能与我的防火墙有关吗?
非常感谢任何帮助,西蒙
编辑:
100% 是 curl 没有在本地运行,将标题更改为:find() on a non-object in XAMPP using curl and simple_html_dom