白话CURL抓取数据

版权声明:俗世凡人行(释) QQ:748507607 https://blog.csdn.net/weixin_41887155/article/details/86105839

目录

一: CURL的意义

二: CURL的实现步骤

三: 详细实现CURL

四: 完整实现CURL请求


一: CURL的意义

curl 模拟浏览器请求,比如获取远程浏览器内容,可以将远程的cookie信息也获得过来,这种情况适合于跨站的登录信息的同步。比如你在www.demo.com下登录,然后到music.demo.com下应该也会是登录状态,

二: CURL的实现步骤

我们将curl的步骤分为以下7步:

    1.初使化curl资源

    2.参数设置请求的协议地址

    3.参数设置是否返回请求结果

    4.设置发送数据(无发送数据可不设置)

    5.其他的参数信息设置(按实际工作需要决定)

    6.执行或执行得到返回结果

    7.关闭curl资源

第二步至第五步本质上,应该统成为curl参数设置;所有curl设置参数设置都是通过curl_setopt都完成;

三: 详细实现CURL

1.第一步:初始化curl资源;

1).初始化curl资源就是用curl_init函数;返回curl的操作资源。

2).我们在后面是通过curl_setopt向curl的操作资源变量压入数据的。

$ch = curl_init();

2.参数设置请求的协议地址;

   curl_setopt函数的详细使用如下:

类型 说明
函数 curl_setopt
参数1 curl资源变量
参数2 curl参数选项
参数3 curl参数值

   CURLOPT_URL 这个参数选项规定了请求的url地址。

curl_setopt($ch, CURLOPT_URL, "http://www.php.cn");

3.参数设置是否返回请求结果;

我们希望curl请求后返回对应的结果。我们要得到对应的结果,也需要设置一个参数,这个参数名为:CURLOPT_RETURNTRANSFER。

若需要返回值即为1。不需请求后返回的结果可设置为0。

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

4.设置发送数据;

如果是get请求,我们不需要设置发送的参数。在post等请求的时候,我们需要设置发送方法为post方法。并设置发送的数据。

*CURLOPT_POST *值设为1是使用POST方法,0为不使用POST方法

CURLOPT_POSTFIELDS设置传递的数据

//声明使用POST方式来进行发送
    curl_setopt($ch, CURLOPT_POST, 1);
//发送什么数据呢
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

5.其他的参数信息设置;

如果是https有的时候我们需要忽略https的安全证书。

CURLOPT_SSL_VERIFYPEER和CURLOPT_SSL_VERIFYHOST 两个参数改为false即忽略了证书。

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);

CURLOPT_HEADER这个参数又决定是是否处理http的头信息,我们不想接收处理的话可将这个值设置为0。

curl_setopt($ch, CURLOPT_HEADER, 0);

我们还可以设置请求的超时时间,参数为:CURLOPT_TIMEOUT。

curl_setopt($ch, CURLOPT_TIMEOUT, 10);

6.执行或执行得到返回结果;

我们第三步中,将CURLOPT_RETURNTRANSFER 参数中将值设为1。如果执行的结果有数据。使用curl_exec执行后,会将结果返回给$output变量。

$output = curl_exec($ch);

7.关闭curl资源;

关闭curl资源。因为资源类型,我们反复强调过,有打开就有关闭。

如果不需要使用,使用curl_close关闭后立刻释放内存。

curl_close($ch);

四: 完整实现CURL请求

<?php
//初始化
$ch = curl_init();
//设置选项,包括URL
curl_setopt($ch, CURLOPT_URL, "http://www.php.cn");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
//执行并获取HTML文档内容
$output = curl_exec($ch);
//释放curl句柄
curl_close($ch);
//打印获得的数据
print_r($output);
?>

猜你喜欢

转载自blog.csdn.net/weixin_41887155/article/details/86105839