Readme

Utils to loadPageContent() and screenshotPage().

Browserbase

Browserbase offers a reliable, high performance serverless developer platform to run, manage, and monitor headless browsers at scale. Leverage our infrastructure to power your web automation and AI agents.

Get started with Browserbase for free here.

If you have any questions, reach out to developer@browserbase.com.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
import puppeteer, { Page } from "https://deno.land/x/puppeteer@16.2.0/mod.ts";
export interface LoadPageContentOptions {
textContent: boolean;
}
export async function loadPageContent(url: string, options: LoadPageContentOptions = { textContent: false }) {
const browser = await puppeteer.connect({
browserWSEndpoint: `wss://connect.browserbase.com?apiKey=${Deno.env.get("BROWSERBASE_API_KEY")}`,
});
const pages = await browser.pages();
const page = pages[0];
let html = await page.content();
if (options.textContent) {
const readable: { title?: string; textContent?: string } = await page.evaluate(`
import('https://cdn.skypack.dev/@mozilla/readability').then(readability => {
return new readability.Readability(document).parse()
})`);
html = `${readable.title}\n${readable.textContent}`;
}
await page.close();
await browser.close();
return html;
}
export interface ScreenshotPageOptions {
fullPage: boolean;
}
export async function screenshotPage(url: string, options: ScreenshotPageOptions = { fullPage: true }) {
const browser = await puppeteer.connect({
browserWSEndpoint: `wss://connect.browserbase.com?apiKey=${Deno.env.get("BROWSERBASE_API_KEY")}`,
});
const pages = await browser.pages();
const page = pages[0];
const buffer = await page.screenshot({ fullPage: options.fullPage });
await page.close();
await browser.close();
return buffer;
}
Val Town is a social website to write and deploy JavaScript.
Build APIs and schedule functions from your browser.
Comments
Nobody has commented on this val yet: be the first!
September 6, 2024