我正准备尝试使用Simple HTML DOM Framework进行抓取:http://simplehtmldom.sourceforge.net/但出于安全原因,在服务器配置中禁用了file_get_contents
。
我现在需要找到一个使用Curl的类似框架 - 任何人都知道什么?
尝试运行斜杠点示例时出现的错误消息是:
Warning: file_get_contents() [function.file-get-contents]: URL file-access is disabled in the server configuration in /var/www/vhosts/domain.com/httpdocs/crawlfeed/simple_html_dom.php on line 70
答案 0 :(得分:5)
只需用cURL向下拉页面,然后将字符串加载到SimpleHTMLDOM:
$ch = curl_init('http://theurl.com');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$htmlStr = curl_exec($ch);
curl_close($ch);
$html = new simple_html_dom();
// Load HTML from a string
$html->load($htmlStr);
答案 1 :(得分:4)
如果你有PHP 5.3(你应该,因为不再支持PHP 5.2)我总是建议你Goutte。
这是一种新的,它只是一个.phar包含在你的项目中。 HTTP部分由Http Zend和套接字处理。你有强大的BrowserKit和DomCrawler Symfony组件来帮助你从HTML中提取信息(没有正则表达式,没有xpath)。
答案 2 :(得分:1)
只需使用cURL获取HTML代码,然后使用XPATH或正则表达式解析html代码。使用XPATH是一个好主意,因为它是一种专门用于解析XML或(X)HTML的语言。
这里有一个很好的例子:http://www.2basetechnologies.com/screen-scraping-with-xpath-in-php