Cookie、デバイスフィンガープリント、レジデンシャルIPが毎回まとめて戻るため、ポータルからは40回目の実行も1回目と同じ再訪ユーザーに見え、確認を求められる新しいデバイスには見えません。
スクリプトが一度ログインし、人がライブセッションで認証コードを入力して、プロファイルが保存されます。
同じデバイス、同じIPアドレス、同じアカウント。ログイン画面が出ないので、スクリプトはすぐに作業に入ります。
何も変わっていません。最初から最後まで、1つのアカウントが一貫した1台のデバイスで動くため、ポータルが新たに確認することはありません。
仕組みを知りたいですか?プロファイルの接続方法を読み、最初のプロファイルを作成しましょう。
ログインするスクリプトには、実行と実行の間に2つのものが必要です。続くログインと、動き続けるブラウザです。それぞれを誰が担うかは次のとおりです。
| 得られるもの | 自前のサーバー | Browserbase | Browserless | |
|---|---|---|---|---|
| 次の実行でもログイン状態 | あり | 自分で構築 | あり | 最大7日 |
| 次の実行でも同じレジデンシャルIP | あり | なし | 公開情報なし | 公開情報なし |
| 最長セッション(最初の有料プラン) | 制限なし | 制限なし | 6時間 | 15分 |
| インストールと更新が必要なChrome | 不要 | 自前 | 不要 | 不要 |
| リンクから人が操作に入れる | あり | なし | あり | あり |
| レジデンシャルトラフィック | $1/GB | 別のプロバイダー | $12/GB | $12/GB |
| 最初の有料プラン | 月$4.50 | サーバー費用 | 月$20 | 月$25(年払い) |
操作ではなくデータ収集が目的ですか?動的スクレイピングをご覧ください。
マーケットプレイス、広告プラットフォーム、ポータルは、ログインのたびに確認を行います。Gologinは毎回、同じデバイス、IP、ログイン情報を戻します。
Amazon、eBay、Etsyのセラーアカウントで、価格、在庫、出品情報を更新します。チームが手作業で行っているのと同じ手順です。
Webページしか用意されていない仕入れ先、旅行、予約サイトで、定期注文や枠の予約を行います。
APIを制限している、またはAPIが有料の広告アカウントや分析ツールから、レポートをダウンロードします。
自社システムの注文、請求書、レコードを、仕入れ先や行政のポータルに項目ごとに転記します。
シートの各行について同じ複数ステップのフォームを入力・送信し、各ステップの後に結果を確認します。
片方にAPIがない場合に、古いWebツールとCRMの間でレコードを移します。
1行でスクリプトを接続します。初回の実行でログインし、以降の実行ではプロファイルがログイン済みかを確認して、すぐに作業に入ります。以下のコードは公開の練習用サイトで2回実行しました。1回目でログインし、2回目はすでにログイン済みでした。
Googleでサインアップし、ダッシュボードからキーをコピーします。無料、カード不要です。
ダッシュボードでワンクリック、またはAPI呼び出し1回で作成できます。プロファイルにはデバイス、IP、ログイン情報が保存されます。
トークンとプロファイルIDを指定してスクリプトを実行します。1回目はログインして「Signed in」と表示し、2回目はログイン済みで開いて「Already signed in」と表示します。詳しくはスタートガイドをご覧ください。
npm install playwright-coreGOLOGIN_TOKEN=your_token GOLOGIN_PROFILE_ID=your_profile_id node login.mjswss://cloudbrowser.gologin.com/connect?token=…&profile=…import { chromium } from "playwright-core";
const token = process.env.GOLOGIN_TOKEN;
const profileId = process.env.GOLOGIN_PROFILE_ID;
const endpoint = `wss://cloudbrowser.gologin.com/connect?token=${token}&profile=${profileId}`;
const browser = await chromium.connectOverCDP(endpoint);
const page = await browser.contexts()[0].newPage();
await page.goto("http://quotes.toscrape.com/");
const signedIn = await page.locator("a[href='/logout']").isVisible();
if (!signedIn) {
await page.goto("http://quotes.toscrape.com/login");
await page.fill("#username", "demo");
await page.fill("#password", "demo");
await page.click("input[type=submit]");
await page.waitForSelector("a[href='/logout']");
}
const first = await page.locator(".quote .text").first().textContent();
console.log(signedIn ? "Already signed in" : "Signed in", "|", first);
await page.close();
await browser.close();npm install puppeteer-coreGOLOGIN_TOKEN=your_token GOLOGIN_PROFILE_ID=your_profile_id node login.mjswss://cloudbrowser.gologin.com/connect?token=…&profile=…import puppeteer from "puppeteer-core";
const token = process.env.GOLOGIN_TOKEN;
const profileId = process.env.GOLOGIN_PROFILE_ID;
const endpoint = `https://cloudbrowser.gologin.com/connect?token=${token}&profile=${profileId}`;
const browser = await puppeteer.connect({ browserWSEndpoint: endpoint });
const page = await browser.newPage();
await page.goto("http://quotes.toscrape.com/");
const signedIn = (await page.$("a[href='/logout']")) !== null;
if (!signedIn) {
await page.goto("http://quotes.toscrape.com/login");
await page.type("#username", "demo");
await page.type("#password", "demo");
await Promise.all([page.waitForNavigation(), page.click("input[type=submit]")]);
await page.waitForSelector("a[href='/logout']");
}
const first = await page.$eval(".quote .text", (el) => el.textContent);
console.log(signedIn ? "Already signed in" : "Signed in", "|", first);
await page.close();
await browser.disconnect();pip install playwrightGOLOGIN_TOKEN=your_token GOLOGIN_PROFILE_ID=your_profile_id python login.pywss://cloudbrowser.gologin.com/connect?token=…&profile=…import os
from playwright.sync_api import sync_playwright
token = os.environ["GOLOGIN_TOKEN"]
profile_id = os.environ["GOLOGIN_PROFILE_ID"]
endpoint = f"wss://cloudbrowser.gologin.com/connect?token={token}&profile={profile_id}"
with sync_playwright() as p:
browser = p.chromium.connect_over_cdp(endpoint)
page = browser.contexts[0].new_page()
page.goto("http://quotes.toscrape.com/")
signed_in = page.locator("a[href='/logout']").is_visible()
if not signed_in:
page.goto("http://quotes.toscrape.com/login")
page.fill("#username", "demo")
page.fill("#password", "demo")
page.click("input[type=submit]")
page.wait_for_selector("a[href='/logout']")
first = page.locator(".quote .text").first.text_content()
print("Already signed in" if signed_in else "Signed in", "|", first)
page.close()
browser.close()どのプランでも同じブラウザが動き、レジデンシャルIPが含まれます。プランの違いは、ブラウザ時間と並列セッション数です。
$0
カード不要
$4.50/月
個人開発者向け
$8/月
成長中のチーム向け
$14/月
重要な業務向け
同時にもっと必要ですか?並列セッションは、どのプランにも1つにつき月$2で必要なだけ追加できます。付与量を超えたプロキシトラフィックは$1/GBです。
4並列セッションから。専任のアカウントマネージャー、プレミアムSLA、個別のオンボーディング付き。
1つのアカウント、1つのプロキシネットワーク、1つのエコシステム。用途に合った製品をお選びください。
Web自動化(ブラウザ自動化とも呼ばれます)は、人がWebサイトで行うクリックや入力を、ソフトウェアが代わりに行うことです。ログイン、フォーム入力、ページの読み取り、ツール間のデータ移動などが含まれます。開発者はPlaywright、Puppeteer、Seleniumなどのライブラリで記述し、ブラウザ上でスケジュールに沿って実行します。
コードでブラウザ作業を自動化するなら、現在はPlaywrightが一般的な選択肢で、Chromeだけの作業ならPuppeteerも使われます。手順の書き方はライブラリで決まり、ログインが続くかどうかは操作対象のブラウザで決まります。Gologin Cloud Browserは、1行変えるだけでPlaywrightやPuppeteerのスクリプトを実行できます。
ログイン情報はファイルではなくプロファイルに保持します。Playwrightのstorage stateはCookieを保存しますが、新しいIPやデバイスからCookieが届くと、サイトは再度の確認を求めることがよくあります。Gologinプロファイルは同じデバイスとレジデンシャルIPとともにCookieを戻すため、次の実行はログイン済みで開きます。
実行はコード入力ページで待機します。セッションのLive Viewリンクを開いてコードを入力すれば、スクリプトは同じログイン済みプロファイルで続きを実行します。Cloud Browser UIをご覧ください。
はい。すでにお使いのスケジューラーから実行できます。cron、GitHub Actions、ジョブキューがスクリプトを起動し、スクリプトは毎回同じプロファイルに接続します。セッションの実行時間に制限はなく、20分間アイドル状態のセッションは自動で終了するため、動いたまま残ることはありません。
はい。ブラウザはGologinのクラウドで動き、あなたのマシンにはウィンドウが表示されません。スクリプトにとっては、これがヘッドレスということです。実行を見守るには、Live Viewリンクを開いてください。ヘッドレスブラウザAPIをご覧ください。
いいえ。ブラウザはGologinのクラウドで動き、スクリプトは接続するだけです。Chromeのインストール、更新、再起動も、サーバーのメモリ設計も不要です。
はい。Python版Playwrightはconnect_over_cdpで接続し、上のPythonタブに完全なスクリプトがあります。インストールはpip install playwrightで行い、ローカルにブラウザをダウンロードする必要はありません。