CAPTCHA Solving
Hyperbrowser automatically solves CAPTCHAs when the solveCaptchas
parameter is set to true for session creation.
import { connect } from "puppeteer-core";
import { Hyperbrowser } from "@hyperbrowser/sdk";
import { config } from "dotenv";
config();
const client = new Hyperbrowser({
apiKey: process.env.HYPERBROWSER_API_KEY,
});
const main = async () => {
const session = await client.sessions.create({
solveCaptchas: true,
});
try {
const browser = await connect({
browserWSEndpoint: session.wsEndpoint,
defaultViewport: null,
});
const [page] = await browser.pages();
// Navigate to a website
console.log("Navigating to Hacker News...");
await page.goto("https://news.ycombinator.com/");
const pageTitle = await page.title();
console.log("Page 1:", pageTitle);
await page.evaluate(() => {
console.log("Page 1:", document.title);
});
} catch (err) {
console.error(`Encountered error: ${err}`);
} finally {
await client.sessions.stop(session.id);
}
};
main();
import { chromium } from "playwright-core";
import { Hyperbrowser } from "@hyperbrowser/sdk";
import { config } from "dotenv";
config();
const client = new Hyperbrowser({
apiKey: process.env.HYPERBROWSER_API_KEY,
});
const main = async () => {
const session = await client.sessions.create({
solveCaptchas: true,
});
try {
const browser = await chromium.connectOverCDP(session.wsEndpoint);
const context = browser.contexts()[0];
const page = await context.newPage();
// Navigate to a website
console.log("Navigating to Hacker News...");
await page.goto("https://news.ycombinator.com/");
const pageTitle = await page.title();
console.log("Page 1:", pageTitle);
await page.evaluate(() => {
console.log("Page 1:", document.title);
});
} catch (err) {
console.error(`Encountered error: ${err}`);
} finally {
await client.sessions.stop(session.id);
}
};
main();
import asyncio
from pyppeteer import connect
import os
from dotenv import load_dotenv
from hyperbrowser import AsyncHyperbrowser
from hyperbrowser.models import CreateSessionParams
# Load environment variables from .env file
load_dotenv()
client = AsyncHyperbrowser(api_key=os.getenv("HYPERBROWSER_API_KEY"))
async def main():
# Create a session and connect to it using Pyppeteer
session = await client.sessions.create(
params=CreateSessionParams(
solve_captchas=True,
)
)
try:
browser = await connect(
browserWSEndpoint=session.ws_endpoint, defaultViewport=None
)
pages = await browser.pages()
page = pages[0]
# Navigate to a website
print("Navigating to Hacker News...")
await page.goto("https://news.ycombinator.com/")
page_title = await page.title()
print("Page title:", page_title)
await page.evaluate("() => { console.log('Page 1:', document.title); }")
except Exception as e:
print(f"Error: {e}")
finally:
await client.sessions.stop(session.id)
# Run the async main function
if __name__ == "__main__":
asyncio.run(main())
import asyncio
from playwright.async_api import async_playwright
import os
from dotenv import load_dotenv
from hyperbrowser import AsyncHyperbrowser
from hyperbrowser.models import CreateSessionParams
# Load environment variables from .env file
load_dotenv()
client = AsyncHyperbrowser(api_key=os.getenv("HYPERBROWSER_API_KEY"))
async def main():
# Create a session and connect to it using Pyppeteer
session = await client.sessions.create(
params=CreateSessionParams(
solve_captchas=True,
)
)
try:
async with async_playwright() as p:
browser = await p.chromium.connect_over_cdp(session.ws_endpoint)
default_context = browser.contexts[0]
page = await default_context.new_page()
# Navigate to a website
print("Navigating to Hacker News...")
await page.goto("https://news.ycombinator.com/")
page_title = await page.title()
print("Page title:", page_title)
await page.evaluate("() => { console.log('Page 1:', document.title); }")
except Exception as e:
print(f"Error: {e}")
finally:
await client.sessions.stop(session.id)
# Run the async main function
if __name__ == "__main__":
asyncio.run(main())
Captcha solving can take a bit of time, so make sure to implement proper waiting strategies when navigating to pages that might contain CAPTCHAs:
const sleep = (ms) => new Promise((res) => setTimeout(res, ms));
await page.goto("https://news.ycombinator.com/",
{ waitUntil: "networkidle0" }
);
await sleep(20000);
CAPTCHA solving is only available on PAID
plans.
Last updated