[ laravel爬虫实战--进阶篇 ] guzzle使用cookies实现模拟登录站点爬取网页内容
Song •
8095 次浏览 •
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;
}
}
更多相关好文
-
laravel中distinct()的使用方法与去重 2017-09-11
-
Laravel将view缓存为静态html,laravel页面静态缓存 2021-10-09
-
[ laravel爬虫实战--基础篇 ] guzzle描述与安装 2017-11-01
-
[ 配置教程 ] 在ubuntu16.04中部署LNMP环境(php7+maridb且开启maridb远程以及nginx多域名访问 )并配置laravel环境 2017-07-18
-
mysql如何给运营人员添加只有查询权限的账号 2024-12-02
热门文章
-
mysql如何给运营人员添加只有查询权限的账号 2024-12-02
-
Mac 安装mysql并且配置密码 2024-11-20
-
阿里云不同账号(跨账号)ECS服务器同地域如何实现免费内网互通? 2024-11-12
-
electron安装使用better-sqlite3并解决NODE_MODULE_VERSION xxx. This version of Node.js requires 2024-11-06
-
Zerotier+Moon+Nginx实现内网穿透搭建网站 2024-08-23
花生壳绑定ubuntu服务器?