php复制拷贝Cookie字符串实现爬取需要登录的页面

我们已经知道如何通过程序模拟登录来生成cookie,然后在爬取需要登录页面的时候带上这个cookie

可以参考上篇文章

这种方式只适用于简单的登录验证方式,如果遇到验证码,token表单字段,还有各种用js加密算法生成的登录字段,模拟登录就会变得异常复杂,为了节省时间,我们一般人工登录后,拷贝Cookie字符串来登录

具体方法为

首页通过人工输入账号密码来登录,然后进入需要爬取的页面,按f12找到cookie

![](https://box.kancloud.cn/06d4527962e4e0fd3e6c04771bcc479c_1848x558.png)

然后接着码代码

```
public function test(){
$ch = curl_init();
$requesturl = 'http://www.test.com.cn/user/info/index/action/getUserInfo/is_ajax/1';
curl_setopt($ch, CURLOPT_URL, $requesturl);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
//$cookie = "复制上面Cookie:后面那一串字符串...";
$cookie = 'PHPSESSID=tfh5vbedf7iksj7srgem8vnc22; loginToken=86dc56bdb12f1e371b54dc454c9546d9';
curl_setopt($ch, CURLOPT_COOKIE, $cookie); //使用上面获取的cookies
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); // https请求 不验证证书和hosts
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
$data=curl_exec($ch);
print_r($data);
curl_close($ch);
}
```

以下为返回内容

```
{
"code": "1",
"status": true,
"msg": "获取成功",
"data": {
"userinfo": {
"username": "138****0731",
"mobile": "138****0731",
"truename": "测试环境昵称1",
"nickname": "测试环境昵称",
"sfz_number": "1",
"create_time": 1633041205
}
}
}
下载|复制|删除
当前路径:data.userinfo
```

    A+
发布日期:2021年12月24日  所属分类:未分类

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: