php之通过curl模仿表单提交(get,post)抓取其他页面的内容

curl是个什么

这是PHP对于curl的一个解释,简单地说就是,curl是一个库,能让你通过URL和许多不同种的服务器进行勾搭、搭讪和深入交流,并且还支持许多协议。并且人家还说了curl可以支持https认证、http post、ftp上传、代理、cookies、简单口令认证等等功能啦。

直接复制就可使用

PHP使用CURL发送GET请求时 并传递参数

<?php
header("Content-Type:text/html; charset=utf-8");

// 使用时的基本步骤

$url = 'http://xuexiao.weiqingdao.cn/demo.php?ceshi=这个get方式提交的内容,所以可以直接写在后面';
// 1,初始化
$curl = curl_init();
// 2,设置属性,这个是最复杂的部分,有很多属性,能指定url请求的各个部分
curl_setopt($curl, CURLOPT_URL, $url); //设置抓取的url
// 执行后不直接打印出来
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HEADER, false);
// 跳过证书检查
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
// 不从证书中检查SSL加密算法是否存在
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);

curl_setopt($curl, CURLOPT_HEADER, 0);    // 头文件的信息作为数据流输出, 0 不输出,1输出
// curl_setopt($curl,CURL_GET);
// 3,执行
$data = curl_exec($curl);

// 显示错误信息
if (curl_error($curl)) {
    print "Error: " . curl_error($curl);
} else {
    // 打印返回的内容
    var_dump($data);
}

// 4,关闭请求
curl_close($curl);

PHP使用CURL发送post请求

<?php
header("Content-Type:text/html; charset=utf-8");
$data = 'ceshi=post参数';
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, "http://xuexiao.weiqingdao.cn/demo.php");
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);// 跳过证书检查
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);// 不从证书中检查SSL加密算法是否存在
curl_setopt($curl, CURLOPT_HEADER, 0); //启用时会将头文件的信息作为数据流输出。这里不启用
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); //如果成功只将结果返回,不自动输出任何内容。如果失败返回FALSE
curl_setopt($curl, CURLOPT_POST, 1); //如果你想PHP去做一个正规的HTTP POST,设置这个选项为一个非零值。这个POST是普通的 application/x-www-from-urlencoded 类型,多数被HTML表单使用。
curl_setopt($curl, CURLOPT_POSTFIELDS, $data); //需要POST的数据
curl_setopt($curl, CURLOPT_HTTPHEADER, array("application/x-www-form-urlencoded; charset=utf-8"));
$rtn = curl_exec($curl);
if(!curl_errno($curl)){
//  $info = curl_getinfo($curl);
//  print_r($info);
 echo $rtn;
} else {
 echo 'Curl error: ' . curl_error($curl);
}
curl_close($curl);

返回的内容
在这里插入图片描述

请求的页面内容
在这里插入图片描述

posted @ 2022-04-02 09:47  coderwcb  阅读(159)  评论(0)    收藏  举报