PHP CURL采集简单案例

如果想要做一个采集其他网站表单POST/GET后的数据,可以采用CURL的方法进行采集,即可得到想要的数据。

// 模拟提交数据函数
function get_maxim_result_by_curl($key){	
	$url="http://shop.maxim-ic.com/storefront/viewpriceavailable.do?event=PartSearch&Partnumber=$key";
	$cookie_file = dirname(__FILE__).'/cookie.txt';
	$ch = curl_init();// 启动一个CURL会话
	curl_setopt($ch, CURLOPT_URL,$url); // 要访问的地址
	curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322)');
	curl_setopt($ch, CURLOPT_COOKIEJAR,  $cookie_file); //伪COOKIE
	curl_setopt ( $ch, CURLOPT_FOLLOWLOCATION, 1 );// 使用自动跳转  如果关闭自动跳转则不报错。0关闭 1 开启
	curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, 0);// 对认证证书来源的检查
	curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, 0);// 从证书中检查SSL加密算法是否存在	
	//curl_setopt ( $ch, CURLOPT_POST, 1 ); // 发送一个常规的Post请求
	//curl_setopt ( $ch, CURLOPT_POSTFIELDS, $data ); // Post提交的数据包
	curl_setopt ( $curl, CURLOPT_TIMEOUT, 30); // 设置超时限制防止死循环
	//curl_setopt ( $curl, CURLOPT_HEADER, 0 ); // 显示返回的Header区域内容
	curl_setopt($ch, CURLOPT_SSLVERSION, 3);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);// 设为TRUE把curl_exec()结果转化为字符串,而不是直接输出
	$result = curl_exec($ch);// 执行操作
        if ( $result ) {
           echo 'Errno' . curl_error ( $ch); //捕抓异常
        }
	curl_close($ch); // 关闭CURL会话
	return $result; // 返回数据
}
//test
print_r(get_maxim_result_by_curl('1111'));