一、什么是cURL
cURL可以实现网络数据的抓取,是一个包含诸多选项的强大接口
开发搜索引擎的爬虫(spiders或webbots)或自动化传输程序,如价格监控、图片抓取、链接校验、搜索排名检测、信息聚合等
cURL是client URL Library Functions的缩写,是由一个命令行工具实现的,用于获取远程文件或传输文件,支持FTP/FTPS、HTTP/HTTPS、SCP/SFTP、Telnet、DICT和File/LDAP等协议,通俗来讲,些类型的服务器,cURL都可以抓取
cURL的本质是一个命令行的工具,如模拟一个正常用户在浏览器上访问一个网站,可以实现自动登录,或者自动抓取分析网页中的内容、二进制文件数据等
为何没有用file_get_contents()这个函数来读取远端内容?
函数是file()函数的一系列包装,而且性能方面存在比较大的问题,在执行时会非常慢
没有办法完成更复杂些的任务,比如管理Cookies,验证和表单提交,文件上传,等等
二、cURL的安装和启用
2-1、安装cURL
Windows系统,在php.ini文件中找到以下内容,去掉分号,重启服务
;extension=php_curl.dll
Ubuntu系统,使用apt-ge命令安装curl,重启服务
sudo apt-get install php5-curl
CentOS下重启Web服务器后也即时启用cURL
yum install php-curl
2-2、检查是否可用cURL扩展库
方式1:
if(is_callable('curl_init')){ echo"curl is enabled"; }else{ echo"curl not enabled"; }
方式2:
phpinfo()函数来查看
三、cURL使用步骤
1、 curl_init() 初始化实例
2、 设置选项 curl_setopt($curl,CONSTANT,Value)
3、 curl_exec($curl) 执行事务
4、 释放句柄 curl_close($culr)
// 完整实例
// 1.初始化,创建一个cURL句柄 $ch = curl_init(); // 2.设置url和选项 curl_setopt($ch, CURLOPT_URL,"http://www.dazhongfazs.com/"); // 设置curl_exec()获取的信息以字符流的形式返回 curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); curl_setopt($ch, CURLOPT_REFERER,"http://www.baidu.com/"); // 启用时会将头 的信息作为字符流输出 curl_setopt($ch, CURLOPT_HEADER,1); // 3.抓取URL的HTML内容 $output = curl_exec($ch); // 4. 关闭cURL句柄 并且释放系统资源 curl_close($ch); echo $output;
四、cURL选项