php模拟登陆的实现方法分析

 这篇文章主要介绍了php模拟登陆的实现方法,实例分析了snoopy与curl两种实现方法,具有一定参考借鉴价值,需要的朋友可以参考下

 
 

本文实例分析了php模拟登陆的实现方法。分享给大家供大家参考。具体分析如下:

php模拟登陆的实现方法,这里分别列举两种方法实现模拟登陆人人网。具体实例代码如下:

1)使用snoopy模拟登陆:

代码如下:
<?php
set_time_limit(0);
require "Snoopy.class.php";
$snoopy=new Snoopy();
$snoopy->referer='http://www.jb51.net/';
$snoopy->agent="Mozilla/5.0 (Windows NT 6.1; rv:22.0) Gecko/20100101 Firefox/22.0";
$submit_vars['email'] ='登陆账号';
$submit_vars['password'] ='登陆密码';
$url='http://www.jb51.net/test/Login.php';//登陆数据提交的URL地址
$snoopy->submit($url,$submit_vars);
$snoopy->fetch("http://www.jb51.net/");//希望获取的页面数据
echo $snoopy->results;//m.jb51.net

2)使用curl模拟登陆:
代码如下:
<?php
set_time_limit(0);
$cookie_file=tempnam('./tmp','cookie');//tmp目录需要先建立好
$ch=curl_init();
$login_url='http://www.jb51.net/PLogin.do';
$curlPost="email=登陆账号&password=登陆密码";
curl_setopt($ch,CURLOPT_URL,$login_url);
//启用时会将头文件的信息作为数据流输出
curl_setopt($ch,CURLOPT_HEADER,0); //设定是否输出页面内容
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_POST,1); //设置请求发送方式,post或get,CURLOPT_POST或CURLOPT_GET
curl_setopt($ch,CURLOPT_POSTFIELDS,$curlPost);
curl_setopt($ch,CURLOPT_COOKIEJAR,$cookie_file); //保存cookie
curl_exec($ch);
curl_close($ch);
$ch=curl_init();
$login_url2="http://www.jb51.net/";
curl_setopt($ch,CURLOPT_URL,$login_url2);
curl_setopt($ch,CURLOPT_HEADER,0);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,0);
curl_setopt($ch,CURLOPT_COOKIEFILE,$cookie_file); //读取cookie
curl_exec($ch);
curl_close($ch);

 

希望本文所述对大家的php程序设计有所帮助。

时间: 2024-10-31 19:54:12

php模拟登陆的实现方法分析的相关文章

php模拟登陆的实现方法分析_php技巧

本文实例分析了php模拟登陆的实现方法.分享给大家供大家参考.具体分析如下: php模拟登陆的实现方法,这里分别列举两种方法实现模拟登陆人人网.具体实例代码如下: 1)使用snoopy模拟登陆: 复制代码 代码如下: <?php set_time_limit(0); require "Snoopy.class.php"; $snoopy=new Snoopy(); $snoopy->referer='http://www.jb51.net/'; $snoopy->ag

php模拟登陆的实现方法

php模拟登陆的实现方法,这里分别列举两种方法实现模拟登陆人人网.具体实例代码如下: (1)使用snoopy模拟登陆 <?php set_time_limit(0); require "Snoopy.class.php"; $snoopy=new Snoopy(); $snoopy->referer='http://www.renren.com/'; $snoopy->agent="Mozilla/5.0 (Windows NT 6.1; rv:22.0)

内网用户AD账号无法登陆的解决方法分析

最近,公司部分用户反映在使用公司相关微软系统(包括Microsoft Share Point 2010.Microsoft Outlook 2010.Lync)时会不定期出现弹出密码框且无法登陆的问题(如图1).在正常情况下,用户只需要登录系统后,不需要再次输入用户名和密码就能访问这些基于AD的应用系统. 一.现象分析 通过抓包分析,并结合采用微软提供的LockoutStatus工具,我们发现此问题是由于相关域帐号在与用户PC(或服务器)无关的机器上发起了多次失败的登陆,造成这些账户在域中被锁定

php模拟登陆的2种实现方法

php模拟登陆的实现方法,这里分别列举两种方法实现模拟登陆人人网.具体实例代码如下: 1)使用snoopy模拟登陆  代码如下 复制代码 <?php set_time_limit(0); require "Snoopy.class.php"; $snoopy=new Snoopy(); $snoopy->referer='http://www.111cn.net/'; $snoopy->agent="Mozilla/5.0 (Windows NT 6.1;

PHP模拟登陆163邮箱发邮件及获取通讯录列表的方法

 这篇文章主要介绍了PHP模拟登陆163邮箱发邮件及获取通讯录列表的方法,实例分析了php实用curl模拟登陆163邮箱的操作技巧,具有一定参考借鉴价值,需要的朋友可以参考下     本文实例讲述了PHP模拟登陆163邮箱发邮件及获取通讯录列表的方法.分享给大家供大家参考.具体实现方法如下:   代码如下: <?php header("Content-Type: text/html; charset=UTF-8"); error_reporting(0); /** * 登陆 *

PHP模拟登陆163邮箱发邮件及获取通讯录列表的方法_php技巧

本文实例讲述了PHP模拟登陆163邮箱发邮件及获取通讯录列表的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: <?php     header("Content-Type: text/html; charset=UTF-8");     error_reporting(0);     /**      * 登陆      * $user 163用户名      * $pass 密码     **/     function login($user,$pass

方法-请教一个模拟登陆的问题!!求高手帮忙!!

问题描述 请教一个模拟登陆的问题!!求高手帮忙!! 模拟登陆需求具体流程是这样的: 1.访问登陆页面. 2.返回页面里 某个 input的值(用于每次登陆传参用,此值为动态的,每次打开页面都会变化). 3.模拟post登陆提交. 4.接收返回页面. ---------------- 实现过程与问题: 1.正常模拟访问页面. 2.正常返回页面,(抓取所需动态值). 3.模拟提交(问题出现在这,因为1已经访问过了页面,而3步的模拟提交还要访问一次,所有造成了所需的 input动态值发生变化了.) 问

用PHP模拟登陆

经常会有人问模拟登陆的问题,其实原理很简单,只要把SessionID保存下来就可以了,今天花了一个小时的时间写了一个函数,供大家参考,网站返回的头信息,具体网站具体分析. 源代码: <?php /*  * 得到网页内容  * 参数:$host [in] string *      主机名称(例如: www.imsorry.com.cn) * 参数:$method [in] string *      提交方法:POST, GET, HEAD ... 并加上相应的参数( 具体语法参见 RFC194

使用C#的HttpWebRequest模拟登陆网站

原文:使用C#的HttpWebRequest模拟登陆网站 这篇文章是有关模拟登录网站方面的. 实现步骤: 启用一个web会话 发送模拟数据请求(POST或者GET) 获取会话的CooKie 并根据该CooKie继续访问登录后的页面,获取后续访问的页面数据. 我们以登录人人网为例,首先需要分析人人网登录时POST的数据格式,这个可以通过IE9中只带的F12快捷键,调出开发人员工具.如下图:   通过开始捕获得到POST的地址和POST的数据 POST数据: email=aaa@163.com&pa