使用简单的html dom获取链接

时间:2015-11-11 11:29:19

标签: php html find file-get-contents simple-html-dom

我正在尝试从该网站获取链接。

http://www.perfumesclub.com/es/perfume/mujer/c/

在简单的html Sun中使用“user-agent”。

但是我收到了这个错误..

Fatal error: Call to a member function find() on string in C:\Users\Desktop\www\funciones.php on line 448

这是我的代码:

感谢^^

$url = 'http://www.perfumesclub.com/es/perfume/mujer/c/';

$option = array(
        'http' => array(
            'method' => 'GET',
            'header' => 'User-Agent: Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)',
        )
);
$context = stream_context_create($option);
$html = new simple_html_dom();
$html = file_get_contents ($url, false, $context);


$perfumes = $html->find('.imageProductDouble');  --> this is line 448

foreach($perfumes as $perfume) {
            // Get the link

            $enlaces = "http://www.perfumesclub.com" . $perfume->href;
            echo $enlaces . "<br/>";
}

2 个答案:

答案 0 :(得分:2)

$html是调用file_get_contents后的字符串。尝试

$html = file_get_html($url);

或使用

$html = str_get_html($html);

致电file_get_contents后。

答案 1 :(得分:2)

将你的file_get_contents包装在str_get_html函数

// method 1
$html = new simple_html_dom();
$html->load( file_get_contents ($url, false, $context) );
// or method 2
$html = str_get_html( file_get_contents ($url, false, $context) );

你正在创建一个新的dom并将其分配给变量$ html,而不是读取返回字符串并将其设置为$ html的url,从而覆盖simple_html_dom实例,因此当你调用find方法时一个字符串而不是一个对象。