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'));

Leave a Reply

(will not be published)