curl 模拟登录 实现教程_PHP教程

编辑Tag赚U币
教程Tag:暂无Tag,欢迎添加,赚取U币!

推荐:php生成Excel文件 实现代码
p有段日子没有更新博客了,生怕被百度遗忘啊,biu~biu~.最近有个项目需要统计网站的url和title,保存在excel里面,下面是具体的代码/p pre class=php name=code!--p //php生成excel报表,是通过发送header()头信息完成的 header(Content-Type: application/vnd.ms-execl);

  模拟登陆 126邮箱 ,人人网等 根据需要自行修改哈,代码如下

  //模拟登陆 验证码的网站,首先获取验证码图片的cookie

  define('SCRIPT_ROOT',dirname(__FILE__).'/');

  $cookieFile = SCRIPT_ROOT.'cookie.tmp';

  /*模拟浏览器*/

  $user_agent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.1.4322)";

  //这里如果知道了cookie可直接发送到目标浏览器

  //$cookie = "lang=zh-cn; JSESSIONID=6AF7DA3F6A5FC3ECA39A7485C3FDBBAE";

  $header = array (

  "Host:login.biuman.com",

  "Referer: http://www.biuman.com",

  );

  //验证码图片的url

  function getCookie($url){

  global $cookieFile;

  $curl = curl_init (); // 启动一个CURL会话

  curl_setopt ( $curl, CURLOPT_URL, $url ); // 要访问的地址

  curl_setopt ( $curl, CURLOPT_SSL_VERIFYPEER, 0 ); // 对认证证书来源的检查

  curl_setopt ( $curl, CURLOPT_SSL_VERIFYHOST, 1 ); // 从证书中检查SSL加密算法是否存在

  curl_setopt ( $curl, CURLOPT_HTTPGET, 1 ); // 发送一个常规的GET请求

  curl_setopt($curl,CURLOPT_COOKIEJAR, $cookieFile); // 把返回来的cookie信息保存在文件中

  $res = curl_exec($curl);

  curl_close($curl);

  }

  function login($url){

  global $cookieFile,$header,$agent;

  $data = array(

  'name'=>'biuman'

  );

  $curl = curl_init (); // 启动一个CURL会话

  curl_setopt ( $curl, CURLOPT_URL, $url ); // 要访问的地址

  curl_setopt ( $curl, CURLOPT_SSL_VERIFYPEER, 0 ); // 对认证证书来源的检查

  curl_setopt ( $curl, CURLOPT_SSL_VERIFYHOST, 1 ); // 从证书中检查SSL加密算法是否存在

  curl_setopt ( $curl, CURLOPT_USERAGENT, $agent ); // 模拟用户使用的浏览器

  curl_setopt($curl, CURLOPT_HTTPHEADER, $header); //设置头信息的地方

  @curl_setopt ( $curl, CURLOPT_FOLLOWLOCATION, 1 ); // 使用自动跳转

  //curl_setopt ( $curl, CURLOPT_HTTPGET, 1 ); // 发送一个常规的GET请求

  curl_setopt ( $curl, CURLOPT_POST, 1 ); // 发送一个常规的Post请求

  curl_setopt ( $curl, CURLOPT_POSTFIELDS, $data ); // Post提交的数据包

  //curl_setopt ( $curl, CURLOPT_COOKIE, $cookie); // 直接发送cookie内容

  curl_setopt($curl,CURLOPT_COOKIEFILE, $cookieFile); //发送Cookie文件

  curl_setopt ( $curl, CURLOPT_TIMEOUT, 120 ); // 设置超时限制防止死循环

  curl_setopt ( $curl, CURLOPT_HEADER, 0 ); // 不显示返回的Header区域内容

  curl_setopt ( $curl, CURLOPT_RETURNTRANSFER, 1 ); // 获取的信息以文件流的形式返回

  $res = curl_exec ( $curl ); // 执行操作

  if (curl_errno ( $curl )) {

  return '失败:Errno' . curl_error ( $curl );

  }

  curl_close ( $curl ); // 关闭CURL会话

  return $res;

  }

  //1.

  $auth_url = "http://www.biuman.com/auth";

  getCookie($auth_url); //获取验证码cookie

  //2.

  $url = 'http://www.biuman.com/home'; //登陆之后提交的url

  $res = login($url);

 

  print_r($res);

分享:PHP-redis命令文档
Redis本质上一个Key/Value数据库,与Memcached类似的NoSQL型数据库,但是他的数据可以持久化的保存在磁盘上,解决了服务重启后数据不丢失的问题,它的值可以是string(字符串)、list(列表)、sets(集合)或者是ordered sets(被排序的集合),所有的数据类型都具有push/pop

来源:模板无忧//所属分类:PHP教程/更新时间:2015-02-04
相关PHP教程