是否有(PHP)Web Scraping框架使用Curl而不是file_get_contents?

时间:2012-01-13 16:00:03

标签: php web-scraping

我正准备尝试使用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

3 个答案:

答案 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