curl 模拟登录 实现教程

  模拟登陆 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);

时间: 2024-08-03 03:25:23

curl 模拟登录 实现教程的相关文章

ajax-php采集高手进:利用curl模拟登录抓取数据遇到json调用问题不成功,求助!

问题描述 php采集高手进:利用curl模拟登录抓取数据遇到json调用问题不成功,求助! 我在抓取一个页面的信息(假设a.php),这个页面只是一些基本的html框架,其他关键信息是通过ajax请求(b.php)回来的,返回的是json,然后在通过页面js将json解析,绘制到页面上.问题的关键是ajax请求的信息里有个手机号码需要登录后才显示完整,原网站利用ajax请求b.php获得json数据,如果直接访问b.php也是可以直接得到:{"name":"zhangsan&

PHP Curl模拟登录微信公众平台、新浪微博实例代码_php实例

使用curl之前先打开curl配置,具体方式百度一下就知道,开启curl扩展.密码用md5加密,这是经过测试成功的,把用户跟密码改成你的就行了. 下面一段代码给大家介绍php使用curl模拟登录微信公众平台,具体代码如下所示: <?php //模拟微信登入 $cookie_file = tempnam('./temp','cookie'); $login_url = 'https://mp.weixin.qq.com/cgi-bin/login'; $pwd = md5("********

PHP使用CURL模拟登录的方法_php技巧

网上的很多模拟登录程序,大都是通过服务程序apache之类的运行,获取到验证码之后显示在网页上,然后填上再POST出去,这样虽然看起来很友 好,但是既然模拟登录,登录后所干的事情就不一定是短时间完成的,所以这就要受到php最大执行时间的限制,而且有些操作还有可能权限不足. 本文提供了一个程序实例,思路就是获取到验证码之后把验证码存储为一个图片,然后程序休眠20秒,在20秒之后由用户手动查看图片,并把验证码填写 到code.txt文件中,20秒休眠完成后,程序会读code.txt的验证码,这样再带

PHP读取CURL模拟登录时生成Cookie文件的方法_php技巧

本文实例讲述了PHP读取CURL模拟登录时生成Cookie文件的方法.分享给大家供大家参考.具体实现方法如下: 在使用PHP中的CURL模拟登录时会保存一个Cookie文件,例如下面的代码 复制代码 代码如下: $login_url = 'XXX';    $post_fields['email'] = 'XXXX';  $post_fields['password'] = 'XXXX';  $post_fields['origURL'] = 'XXX';  $post_fields['doma

开发工具-curl 模拟登录网站,表单数据的填写问题

问题描述 curl 模拟登录网站,表单数据的填写问题 10C <form name=form1 method=post action=""/Control""><input type=""hidden"" name=""id"" value=""2000""><table border=""0&qu

php-PHP的curl模拟·登录老是失败出现了405错误

问题描述 PHP的curl模拟·登录老是失败出现了405错误 我准备登录学校的教务系统 可是老是失败 怎么做才成功 以下是代码和错误 登陆的请求头信息在代码最下方 我知道是提交登录地址出错了 但修改后登录弹出验证码不正确 我想应该是验证码没有保存成功 如何保存验证码????????代码和上面差不多只是登录提交地址改了 解决方案 用fiddler看下,你的请求和浏览器的有什么不同. 解决方案二: 405 - 用来访问本页面的 HTTP 谓词不被允许(方法不被允许) 你用对了方法吗,POST,提交的

php curl模拟登录 问题

问题描述 php curl模拟登录 问题 最近公司一个项目需要用到模拟登录技术,研究了几天没什么头绪,请问大神们有没有相关的资料或例子推荐一下,例如模拟登录微博(内容最好是比较新的)这些的... 解决方案 你可以在百度上找找看

setopt-用php的curl模拟登录后自动跳转问题

问题描述 用php的curl模拟登录后自动跳转问题 我在使用curl模拟登陆时,模拟登录成功了,但是成功之后总是会自动跳转到另一个页面,请问我怎样才能使它不自动跳转呢? $url = "http://class.sise.com.cn:7001/sise/login_check.jsp"; // 设置cookie保存路径 $cookie = dirname(__FILE__) . '/cookie_student.txt'; $curl = curl_init();//初始化curl模

php curl 模拟登录时出现invalid viewstate问题 求助啊~

问题描述 php curl 模拟登录时出现invalid viewstate问题 求助啊~ 页面错误 此页面发现一个意外错,对此我们非常抱歉. 请系统管理员及时与我们联系,我们会尽快解决此问题! 错误发生位置:http://csujwc.its.csu.edu.cn/_data/index_login.aspx 错误消息: Invalid_Viewstate Client IP: 202.197.61.238 Port: 61338 User-Agent: Mozilla/5.0 (Window