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

发布时间:2021-12-24 15:52:54 阅读:1188次

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

可以参考上篇文章

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

具体方法为

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

然后接着码代码

    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

如有问题,可以QQ搜索群1028468525加入群聊,欢迎一起研究技术

支付宝 微信

有疑问联系站长,请联系QQ:QQ咨询

转载请注明:php复制拷贝Cookie字符串实现爬取需要登录的页面 出自老鄢博客 | 欢迎分享