php curl模拟真实用户,php使用curl模拟用户登入

许多时候为了更自动化一些过程,我们会用到程序模拟用户行为,更多的时候我们每写一次都会去查一次手册资料或者看一下自己之前写过的代码来加快我们开发进程,在此留下笔记供自己或者网友以后做参考。

我们用curl模拟用户的登入行为,之后再用登入产生的cookie文件模拟浏览器访问,使服务器产生用户登入后才会处罚的行为,以次达到目的或者获取想要的数据。

下面为代码,部分代码已经增加注释

$cookie_jar = dirname(__FILE__)."/set.cookie";

function curlPost($url, $data, $cookie_jar, $set_cookie = 0, $ispost = 0, $timeout = 30)//参数 1:访问地址 2:提交数据 3:cookie地址 4:[0不启用cookie,1获取cookie,2提交cookie,3同时启用] 5:是否为post提交,默认为get方式 6:超时时间

{

$ssl = substr($url, 0, 8) == "https://" ? TRUE : FALSE;

$ch = curl_init();

$opt = array(

CURLOPT_URL => $url,

CURLOPT_HEADER => 0,

CURLOPT_RETURNTRANSFER => 1,

CURLOPT_TIMEOUT => $timeout,

);

if($set_cookie == 1 or $set_cookie == 3) $opt[CURLOPT_COOKIEJAR] = $cookie_jar;

if($set_cookie == 2 or $set_cookie == 3) $opt[CURLOPT_COOKIEFILE] = $cookie_jar;

if($ispost){

$opt[CURLOPT_POST] = 1;

$opt[CURLOPT_POSTFIELDS] = (array)$data;

}

if ($ssl){

$opt[CURLOPT_SSL_VERIFYHOST] = 1;

$opt[CURLOPT_SSL_VERIFYPEER] = FALSE;

}

curl_setopt_array($ch, $opt);

$data = curl_exec($ch);

curl_close($ch);

return $data;

}

$array = array(‘usrname‘=>‘name‘,‘password‘=>‘psw‘);

$data = curlPost(‘https://www.xxx.com/login‘, $array, $cookie_jar, 0, 1);//设置登入,绕过https方式访问,并获取cookie文件

echo ($data);

$data = curlPost(‘https://www.xxx.com/‘, array(), $cookie_jar, 1, 2);//通过cookie文件模拟客户端用户访问

echo ($data);

对于数据采集和用户行为模拟的路还很长,慢慢来吧。

你也可以回吐槽墙看看

原文:http://www.cnblogs.com/zierta/p/4840667.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值