カテゴリー
【Puppeteer実用講座】Puppeteer操作だけでreCAPTCHA v2は突破したときの話〜クッキー活用編
※ 当ページには【広告/PR】を含む場合があります。
2022/05/06
ログイン後にCookieを保存する拡張機能を利用する
エクスポート
[
{
"domain": ".***.com",
"expirationDate": 1714874950,
"hostOnly": false,
"httpOnly": false,
"name": "_dga",
"path": "/",
"sameSite": "unspecified",
"secure": false,
"session": false,
"storeId": "0",
"value": "GA1.2.11111111.111111111",
"id": 1
},
{
"domain": ".***.com",
"expirationDate": 1651889350,
"hostOnly": false,
"httpOnly": false,
"name": "_dga_gid",
"path": "/",
"sameSite": "unspecified",
"secure": false,
"session": false,
"storeId": "0",
"value": "GA1.2.22222222.22222222",
"id": 2
},
//....中略
{
"domain": "****.***.com",
"expirationDate": 1652020150.803603,
"hostOnly": true,
"httpOnly": false,
"name": "XSRF-TOKEN",
"path": "/",
"sameSite": "no_restriction",
"secure": true,
"session": false,
"storeId": "0",
"value": "e..............D",
"id": 13
}
]
Puppeteerへの実装
import { readFile } from 'fs/promises';
import puppeteer from 'puppeteer';
const browser: puppeteer.Browser = await puppeteer.launch({headless: true});
const page: puppeteer.Page = await browser.newPage();
try {
//👇保存したクッキーを読み込む
const cookieStr = await readFile('./cookie.json', 'utf-8');
const cookies = JSON.parse(cookieStr);
//👇ページアクセスより先にPupperteerページにクッキーをセットする
await page.setCookie(...cookies as any[]);
//👇ログイン先のトップページ等に移動
await page.goto('https://某D●M証券/mypage');
//...ログイン済みのページを色々操作
//👇とりあえずページをキャプチャ
await page.screenshot({path: './capture_after_login.png'});
}
catch (error) { console.log(error); }
finally { browser.close(); }
記事を書いた人
ナンデモ系エンジニア
主にAngularでフロントエンド開発することが多いです。 開発環境はLinuxメインで進めているので、シェルコマンドも多用しております。 コツコツとプログラミングするのが好きな人間です。
カテゴリー