使用PHP的cURL库可以简单和有效地去抓网页。你只需要运行一个脚本,然后分析一下你所抓取的网 页,然后就可以以程序的方式得到你想要的数据了。无论是你想从从一个链接上取部分数据,或是取一个XML文件并把其导入数据库,那怕就是简单的获取网页内 容,cURL 是一个功能强大的PHP库。
PHP中的CURL函数库(Client URL Library Function)
curl_close() //关闭一个curl会话
curl_copy_handle() //拷贝一个curl连接资源的所有内容和参数
curl_errno() //返回一个包含当前会话错误信息的数字编号
curl_error() //返回一个包含当前会话错误信息的字符串
curl_exec() //执行一个curl会话
curl_getinfo() //获取一个curl连接资源句柄的信息
curl_init() //初始化一个curl会话
curl_multi_add_handle() //向curl批处理会话中添加单独的curl句柄资源
curl_multi_close() //关闭一个批处理句柄资源
curl_multi_exec() //解析一个curl批处理句柄
curl_multi_getcontent() //返回获取的输出的文本流
curl_multi_info_read() //获取当前解析的curl的相关传输信息
curl_multi_init() //初始化一个curl批处理句柄资源
curl_multi_remove_handle() //移除curl批处理句柄资源中的某个句柄资源
curl_multi_select() //Get all the sockets associated with the cURL extension, which can then be "selected"
curl_setopt_array() //以数组的形式为一个curl设置会话参数
curl_setopt() //为一个curl设置会话参数
curl_version() //获取curl相关的版本信息
curl_init() //函数的作用初始化一个curl会话,curl_init()函数唯一的一个参数是可选的,表示一个url地址。
curl_exec() //函数的作用是执行一个curl会话,唯一的参数是curl_init()函数返回的句柄。
curl_close() //函数的作用是关闭一个curl会话,唯一的参数是curl_init()函数返回的句柄。
例子一:基本例子
<?php
// 初始化一个 cUrl 对象
$curl = curl_init();
// 设置你需要抓取的 URL
curl_setopt($curl, CURLOPT_URL, 'http://www.baidu.com');
// 设置header
curl_setopt($curl, CURLOPT_HEADER, 1);
// 设置 cURL 参数,要求结果保存到字符串中还是输出到屏幕上
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
// 运行 cURL,请求页面
$data = curl_exec($curl);
// 关闭 URL 请求
curl_close($curl);
// 显示 获得的数据
var_dump($data);
例子二: POST数据
sendSMS.php,其可以接受两个表单域,一个是电话号码,一个是短信内容。
$phoneNumber = '186******81';
$message = 'This message was generated by curl and php';
$curlPost = 'phoneNumber=' . urlencode($phoneNumber) . '&message=' . urlencode($message) . '&submit=Send';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://localhost/sendSMS.php');
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPost);
$data = curl_exec();
curl_close($ch);
例子三: 使用代理服务器
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://www.google.com.hk');
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 1);
curl_setopt($ch, CURLOPT_PROXY, '代理服务器地址:端口号');
curl_setopt($ch, CURLOPT_PROXYUSERPWD, 'user:password');
$data = curl_exec();
curl_close($ch);
转载地址:http://blog.sina.com.cn/s/blog_640738130100tsig.html