php curl 采集

curl 采集五个步骤:

1.curl_init()初始化curl
2.curl_setopt()设置传输数据和参数
3.curl_exec()执行传输并获取返回数据
4.curl_errono()返回错误码
5.curl_close()关闭curl

 get 方式:

$curl = curl_init();

$url='http://www.baidu.com';

//设置请求url

curl_setopt($curl, CURLOPT_URL,$url );

//是否将头文件输出

curl_setopt($curl, CURLOPT_HRADER,TRUE );

// 设置cURL 参数,要求结果保存到字符串中还是输出到屏幕上。

curl_setopt($curl, CURLOPT_RETURNTRANSFER,TRUE );

// 运行cURL,请求网页

$data = curl_exec($curl);

// 关闭URL请求
curl_close($curl);

post方式:

$cookie_file = dirname(__FILE__) . '/cookie.txt';   
        $url = 'http://manage.wxpro.loc/admin/login';
        $get_url = 'http://manage.wxpro.loc/';
        $post_data = array('username'=>'username','password'=>'password');
        //初始化一个curl对象
        $curl = curl_init();
        //设置你需要抓取的 url
        curl_setopt($curl,CURLOPT_URL,$url);
        //设置crul参数,要求结果保存到字符串中还是输出到屏幕上
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, true );
        //post数据
        curl_setopt($curl,CURLOPT_POST,1);
        //post变量
        curl_setopt($curl,CURLOPT_POSTFIELDS,$post_data);
        //存储cookie
        curl_setopt($curl, CURLOPT_COOKIEJAR, $cookie_file);  
        //运行curl,请求网页
        $data = (array)json_decode(curl_exec($curl));
        //关闭url请求
        curl_close($curl);


        if($data['error'] ==0){
            //带着上面得到的COOKIE获取需要登录后才能查看的页面内容   
            $ch = curl_init($get_url);   
            curl_setopt($ch, CURLOPT_HEADER, 1);   
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);   
            curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file);   
            $contents = curl_exec($ch);   
            curl_close($ch);   

            var_dump($contents);
        }

curl_setopt 参数解释:

1.CURLOPT_URL                            需要获取的 URL 地址,也可以在curl_init() 初始化会话的时候。

2.CURLOPT_HEADER                      TRUE 启用时会将头文件的信息作为数据流输出。FALSE 不会输出

3.CURLOPT_RETURNTRANSFER       TRUEcurl_exec()获取的信息以字符串返回,而不是直接输出。false 直接输出

4.CURLOPT_COOKIEJAR       调用curl_close后,保存 cookie信息的条件

5.CURLOPT_COOKIEFILE      包含 cookie 数据的文件名,cookie 文件的格式可以是 Netscape 格式,或者只是纯 HTTP 头部风格,存入文件。如果文件名是空的,不会加载 cookie,但 cookie 的处理仍旧启用。

 

原文地址:https://www.cnblogs.com/zouzhe0/p/6245434.html