本站停止维护,已转移至laravel学习网;欢迎大家移步访问!

laravel guzzle爬虫实战 --进击篇(使用cookies实现模拟登录)

在我们使用爬虫的过程中,经常需要模拟登录后台,获取更多数据,我们怎么去模拟登录呢?其实就是在登录的时候记录住登录cookie,每次请求带上cookie,实现模拟登录。

Guzzle可以使用 cookies 请求参数为你维护一个cookie会话,当发送一个请求时, cookies 选项必须设置成 GuzzleHttp\Cookie\CookieJarInterface 的实例。

// Use a specific cookie jar
$jar = new \GuzzleHttp\Cookie\CookieJar;
$r = $client->request('GET', 'http://httpbin.org/cookies', [
    'cookies' => $jar
]);

上面这张方法用起来我觉得不是很方便,还是用下面这张方法更加方便,我只需要定义一下,就不再管这个cookie这个问题了

// Use a shared client cookie jar
$client = new \GuzzleHttp\Client(['cookies' => true]);
$r = $client->request('GET', 'http://httpbin.org/cookies');

好的,说那么多没有意思,我来带大家做一个实战,我们今天来做一个模拟登录,更加牛掰的,比如有验证码的,有token的,还有油算法的登录,我会在接下来的教程中去讲解,大家持续关注哦

<?php
namespace App\Http\Controllers;
use GuzzleHttp\Client;
class TestController extends Controller
{
    public function test()
    {
    $client = new Client(['cookies' => true]);
        // 登录账号
        $login = $client->request('POST','登录地址',['form_params' => ['usename' => '账号','password'=>'密码','remember'=>'false']]);
        // 请求需要登录才能访问的页面
        $response = $client->request('GET',"");
        $data = $response->getBody();
        echo $data;
    }
}


转载请注明 :一沙网络原文出处:http://bbs.earnp.com/article/222
问题交流群 :562864481
0
打赏
发布时间 :2016-11-10 21:09:23
分享

0 个评论

    还没有评论,感觉来抢沙发吧!

要回复文章请先登录注册