CURL通过设置curl_setopt模拟来源,IP,提交表单数据,模拟登陆等
来源:互联网 发布:刺客信条壁纸软件 编辑:程序博客网 时间:2024/06/16 18:46
在开发中我们有时会碰到这样的需求,需要采集其他网站数据,或者向其他网站提交数据,我们需要CURL通过设置curl_setopt模拟来源,IP,提交表单数据,模拟登陆等。下面给出实际示例:
$ip = '118.89.238.218'; $post = array ( 'name' => 'xxxx', 'password' => 'xxxxxx', ); //需要提交的表单数据 $url = 'https://xxxxx.cn/login/login.html'; //提交地址 $refer = 'https://xxxxxx.cn/Index/index.html'; //模拟来源地址 $header = array( 'Host:xxxx.cn', 'Referer:'.$refer, 'X-Forwarded-For:'.$ip, 'Client-Ip:'.$ip, 'Upgrade-Insecure-Requests:1', 'User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.86 Safari/537.36', ); $res = curl_post($url, $cookie, $post, $refer, $header); if(preg_match('/<em>登录成功!<\/em>/', $res)){ echo date('Y-m-d H:i:s')."\t".$post['name'].'登录成功'; }else{ echo date('Y-m-d H:i:s')."\t".$post['name'].'登录失败'; }
curl函数封装(post方式)
function curl_post($url, $cookie, $post = array(), $refer = '', $header = array()) { $curl = curl_init();//初始化curl模块 curl_setopt($curl, CURLOPT_URL, $url);//登录提交的地址 $refer && curl_setopt($curl, CURLOPT_REFERER, $refer); count($header) && curl_setopt($curl, CURLOPT_HTTPHEADER, $header);//模拟头信息 curl_setopt($curl, CURLOPT_HEADER, 0);//是否显示头信息 curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);//是否自动显示返回的信息 curl_setopt($curl, CURLOPT_COOKIEFILE, $cookie); //读取cookie curl_setopt($curl, CURLOPT_POST, 1);//post方式提交 count($post) && curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($post));//要提交的信息 curl_setopt($curl, CURLOPT_COOKIEJAR, $cookie); //设置Cookie信息保存在指定的文件中 $rs = curl_exec($curl);//执行cURL curl_close($curl);//关闭cURL资源,并且释放系统资源 return $rs;}
curl函数封装(get方式)
function curl_get($url, $cookie, $get = array(), $refer = '', $header = array()) { $curl = curl_init();//初始化curl模块 curl_setopt($curl, CURLOPT_URL, $url);//登录提交的地址 $refer && curl_setopt($curl, CURLOPT_REFERER, $refer); count($header) && curl_setopt($curl, CURLOPT_HTTPHEADER, $header);//模拟头信息 curl_setopt($curl, CURLOPT_HEADER, 0);//是否显示头信息 curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);//是否自动显示返回的信息 curl_setopt($curl, CURLOPT_COOKIEFILE, $cookie); //读取cookie curl_setopt($curl, CURLOPT_POST, 0);//post方式提交 count($get) && curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($get));//要提交的信息 curl_setopt($curl, CURLOPT_COOKIEJAR, $cookie); //设置Cookie信息保存在指定的文件中 $rs = curl_exec($curl);//执行cURL curl_close($curl);//关闭cURL资源,并且释放系统资源 return $rs;}
阅读全文
0 0
- CURL通过设置curl_setopt模拟来源,IP,提交表单数据,模拟登陆等
- Curl模拟提交数据
- php使用curl 模拟表单提交文件和数据
- cURL模拟POST提交数据
- curl模拟post提交数据
- curl模拟post进行表单提交
- java模拟表单提交数据
- 模拟post登陆提交表单问题详解
- php 使用curl模拟ip和来源进行访问
- PHP curl模拟ip和来源进行访问
- PHP CURL模拟表单post提交文件,curl POST文件
- cURL实现模拟登陆+抓取数据
- php curl模拟post提交数据示例
- PHP CURL模拟POST提交XML数据
- curl 模拟yeelink数据提交和查询
- php curl模拟post请求提交数据
- php CURL 模拟 POST 提交数据
- CURL模拟POST提交JSON数据
- 分析Redis架构设计
- 问题记录
- 爬行的蚂蚁-Java-2017百度秋招
- Android自定义View的入门
- ES6学习之路~~let和const申明
- CURL通过设置curl_setopt模拟来源,IP,提交表单数据,模拟登陆等
- c++编程思想阅读笔记
- 笑谈java并发编程六之AtomicMarkableReference和AtomicStampedReference介绍
- spring+shiro+mybatis整合时候的出现:UnsatisfiedDependencyException的异常
- MUI+Htmlplus开发APP实现页面之间传值
- 关于我的个人网站
- Kotlin 语法
- Linux自动删除n天前的日志
- 3167:神奇的辣条