Playwright
Scraping Browser cung cấp một nền tảng serverless hiệu năng cao được thiết kế để đơn giản hóa quá trình trích xuất dữ liệu từ các trang web động. Thông qua việc tích hợp liền mạch với Playwright, các nhà phát triển có thể chạy, quản lý và giám sát các trình duyệt headless mà không cần tài nguyên máy chủ chuyên dụng, cho phép tự động hóa web và thu thập dữ liệu hiệu quả.
Cài đặt các thư viện cần thiết
Đầu tiên, cài đặt playwright-core, một phiên bản nhẹ của Playwright được sử dụng để kết nối với các phiên bản trình duyệt hiện có:
npm install playwright-core
Viết mã để kết nối với Scraping Browser
Trong mã Playwright của bạn, hãy kết nối với Scraping Browser bằng cách sử dụng các lệnh sau:
const { Playwright } = require('@scrapeless-ai/sdk');
(async () => {
const browser = await Playwright.connect({
apiKey: 'Your API key',
session_name: 'sdk_test',
session_ttl: 180,
proxy_country: 'US',
session_recording: true,
});
const context = browser.contexts()[0];
const page = await context.newPage();
await page.goto('https://www.scrapeless.com');
console.log(await page.title());
await browser.close();
})();
Điều này cho phép bạn tận dụng cơ sở hạ tầng của Scraping Browser, bao gồm khả năng mở rộng, luân phiên IP và truy cập toàn cầu.
Ví dụ thực tế
Dưới đây là một số thao tác Playwright phổ biến sau khi tích hợp Scraping Browser:
- Điều hướng và trích xuất nội dung trang
const page = await browser.newPage();
await page.goto('https://www.example.com');
console.log(await page.title());
const html = await page.content();
console.log(html);
await browser.close();
- Chụp ảnh màn hình
const context = browser.contexts()[0];
const page = await context.newPage();
await page.goto('https://www.example.com');
await page.screenshot({ path: 'example.png' });
console.log('Screenshot saved as example.png');
await browser.close();
- Chạy mã tùy chỉnh
const context = browser.contexts()[0];
const page = await context.newPage();
await page.goto('https://www.example.com');
const result = await page.evaluate(() => document.title);
console.log('Page title:', result);
await browser.close();
- Mô phỏng nhấp chuột chuột.
const { createPlaywrightCDPSession } = require('@scrapeless-ai/sdk');
// ... connect to Scraping Browser as shown above
const cdpSession = await createPlaywrightCDPSession(page);
await cdpSession.realClick('button[type="submit"]');
- Mô phỏng nhập liệu bàn phím.
const { createPlaywrightCDPSession } = require('@scrapeless-ai/sdk');
// ... connect to Scraping Browser as shown above
const cdpSession = await createPlaywrightCDPSession(page);
await cdpSession.realFill('#login-email', 'scrapeless@gmail.com');
- Lấy URL trang hiện tại sử dụng Scrapeless Agent
const { createPlaywrightCDPSession } = require('@scrapeless-ai/sdk');
// ... connect to Scraping Browser as shown above
const cdpSession = await createPlaywrightCDPSession(page);
const { error, liveURL } = await cdpSession.liveURL();
- Giải mã Captcha ảnh
const { createPlaywrightCDPSession } = require('@scrapeless-ai/sdk');
// ... connect to Scraping Browser as shown above
const cdpSession = await createPlaywrightCDPSession(page);
await cdpSession.imageToText({
imageSelector: '.captcha__image',
inputSelector: 'input[name="captcha"]',
timeout: 30000,
});
- Tắt tự động giải mã captcha
const { createPlaywrightCDPSession } = require('@scrapeless-ai/sdk');
// ... connect to Scraping Browser as shown above
const cdpSession = await createPlaywrightCDPSession(page);
await cdpSession.disableCaptchaAutoSolve();
- Tự giải mã captcha với các tùy chọn đã chỉ định
const { createPlaywrightCDPSession } = require('@scrapeless-ai/sdk');
// ... connect to Scraping Browser as shown above
const cdpSession = await createPlaywrightCDPSession(page);
await cdpSession.solveCaptcha();
- Chờ phát hiện captcha trên trang
const { createPlaywrightCDPSession } = require('@scrapeless-ai/sdk');
// ... connect to Scraping Browser as shown above
const cdpSession = await createPlaywrightCDPSession(page);
await cdpSession.waitCaptchaDetected({ timeout: 30000 });
- Chờ giải mã captcha (thành công hoặc thất bại)
const { createPlaywrightCDPSession } = require('@scrapeless-ai/sdk');
// ... connect to Scraping Browser as shown above
const cdpSession = await createPlaywrightCDPSession(page);
await cdpSession.waitCaptchaSolved({ timeout: 30000 });