[ laravel爬虫实战--进阶篇 ] guzzle使用cookies实现模拟登录站点爬取网页内容

Song7798 次浏览0个评论2017年11月03日

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

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

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

上面这种方法用起来不是很方便,推荐使用下面这种方法,我只需要定义一下,就不再管这个cookie这个问题了。

$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;
    }
}

提交评论

请登录后评论

用户评论

    当前暂无评价,快来发表您的观点吧...

更多相关好文