php 模拟登陆爬取_PHP 使用 curl post 模拟登录

3

2015-06-07 11:39:56 +08:00

抓包工具看看header里面的参数是不是一样。

应该就是content-type类型没对

mac抓包httpscoop

参考下我最近写的一个论坛的

$data = $_POST;

//请求登陆地址

$url = "http://passport.uc108.com/login.aspx?mode=1";

$data = array(

'username' => trim($_POST['username']),

'password' => trim($_POST['password']),

'verifyCode' => trim($_POST['yzm']),

'verifycodeid' => trim($_SESSION['code']),

'remember' => 1,

);

$ch = curl_init($url);

$array = Array(

"Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8",

"Accept-Encoding:gzip, deflate",

"Accept-Language:zh-CN,zh;q=0.8",

"Cache-Control:max-age=0",

"Connection:keep-alive",

"Host:passport.uc108.com",

"Origin:http://shangyu.108sq.com",

"Referer:http://shangyu.108sq.com/User/Login?url=http%3A%2F%2Fshangyu.108sq.com%2F",

"User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.89 Safari/537.36",

"DNT:1",

);

$ch = curl_init($url);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

curl_setopt($ch, CURLOPT_HEADER, true);

curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 120);

curl_setopt($ch, CURLOPT_POST, true);

curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

curl_setopt($ch, CURLOPT_HTTPHEADER, $array);

curl_setopt($ch, CURLINFO_HEADER_OUT, true);

curl_setopt($ch, CURLOPT_COOKIEFILE, $_SESSION['file']);

curl_setopt($ch, CURLOPT_COOKIEJAR, $_SESSION['file']);

$result = curl_exec($ch);

curl_close($ch);

$pattern = "/apps.*?\"(.*?)\"/m";

preg_match_all($pattern, $result, $match);

if(!empty($match[1])) {

return $match[1];

} else {

$flag = array('flag' => '101', 'msg' => '账号或验证码错误');

echo json_encode($flag);

exit;

}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值