Web scraping for dynamic content, authentication, pagination, and data extraction using Playwright.
Works with
Handles JavaScript-rendered sites, login flows, and multi-page navigation with built-in wait strategies and selector management
Supports headless and visible browser modes, with async patterns for reliable automation across flaky elements
Extracts data via selectors with JSON output, captures screenshots and PDFs, and manages cookies and sessions per context
Configure via JSON files
AI-first code editor with Composer
Before installing skills in Cursor, ensure your development environment meets these requirements:
node --versionplaywright-scraperExecute the skills CLI command in your project's root directory to begin installation:
Fetches playwright-scraper from alphaonedev/openclaw-graph and configures it for Cursor.
The CLI shows a list of agents. Use arrow keys and space to select Cursor:
Confirm successful installation by checking the skill directory location:
Restart Cursor to activate playwright-scraper. Access via /playwright-scraper in your agent's command palette.
We perform automated surface-level scans (Gen AI Scanner, Socket, Snyk) during installation. These checks detect common vulnerabilities but do not guarantee complete security. Always review skill source code and verify the publisher's reputation before production use.
Skills execute code in your environment. Always review source, verify the publisher, and test in isolation before production.
Submit your Claude Code skill and start earning
Automate repetitive workflows and reduce manual effort
Example
Generate reports, summarize documents, draft communications
Save 3-5 hours per week on routine tasks
Learn new skills, understand complex topics, get expert guidance
Example
Explain concepts, provide examples, suggest learning resources
Accelerate learning and skill development by 2x
Enhance output quality through reviews, suggestions, and refinements
Example
Review drafts, suggest improvements, catch errors
Improve work quality by 30-40% with less effort
1
total installs
1
this week
2
GitHub stars
0
upvotes
Run in your terminal
1
installs
1
this week
2
stars
This skill enables web scraping using Playwright, a Node.js library for browser automation. It focuses on handling dynamic content, authentication flows, pagination, data extraction, and screenshots to reliably scrape modern websites.
Use this skill for scraping sites with JavaScript-rendered content (e.g., React or Angular apps), sites requiring login (e.g., dashboards), handling multi-page results (e.g., search results), or capturing visual data (e.g., screenshots for verification). Avoid for static HTML sites where simpler tools like requests suffice.
Always initialize a browser context first, then create pages for navigation. Use async patterns for reliability. For authenticated scraping, handle cookies or sessions per context. Structure scripts to loop through pages for pagination and use try-catch for flaky elements. Pass configurations via JSON files or environment variables for reusability.
Use Playwright's Node.js API. Install via npm install playwright. Key methods include:
const browser = await playwright.chromium.launch({ headless: true });const page = await browser.newPage(); await page.goto('https://example.com');await page.fill('#username', process.env.USERNAME); await page.fill('#password', process.env.PASSWORD); await page.click('#login');const data = await page.evaluate(() => document.querySelector('#target').innerText); console.log(data);while (await page.$('#next-button')) { await page.click('#next-button'); await page.waitForSelector('.item'); }await page.screenshot({ path: 'screenshot.png' });
CLI flags for running scripts: Use npx playwright test with flags like --headed for visible mode or --timeout 30000 for extended waits.Integrate by importing Playwright in Node.js projects. For auth, use environment variables like $PLAYWRIGHT_USERNAME and $PLAYWRIGHT_PASSWORD to avoid hardcoding. Configuration format: Use a JSON file for settings, e.g., { "url": "https://target.com", "selector": "#data-element" }. Pass it via script args: node scraper.js --config config.json. For larger systems, chain with tools like Puppeteer (if migrating) or export data to databases via page.evaluate results. Ensure compatibility with Node.js 14+ and handle proxy settings with browser.launch({ proxy: { server: 'http://myproxy.com:8080' } }).
Anticipate common errors like timeout on dynamic loads or selector failures. Use page.waitForSelector with timeouts: await page.waitForSelector('#element', { timeout: 10000 }).catch(err => console.error('Element not found:', err));. For network issues, wrap page.goto in try-catch: try { await page.goto(url, { waitUntil: 'networkidle' }); } catch (e) { console.error('Navigation failed:', e.message); await browser.close(); }. Handle authentication failures by checking for error elements: if (await page.$('#error-message')) { throw new Error('Login failed'); }. Log errors with details and retry up to 3 times using a loop.
export PLAYWRIGHT_USERNAME='[email protected]' and export PLAYWRIGHT_PASSWORD='securepass'. Then, run: const browser = await playwright.chromium.launch(); const page = await browser.newPage(); await page.goto('https://dashboard.com/login'); await page.fill('#username', process.env.PLAYWRIGHT_USERNAME); await page.fill('#password', process.env.PLAYWRIGHT_PASSWORD); await page.click('#submit'); const data = await page.evaluate(() => document.querySelector('#dashboard-data').innerText); console.log(data); await browser.close(); This extracts data from a protected page.const browser = await playwright.chromium.launch(); const page = await browser.newPage(); await page.goto('https://search.com?q=query'); let items = []; while (true) { items.push(...await page.$$eval('.result-item', elements => elements.map(el => el.innerText))); const nextButton = await page.$('#next-page'); if (!nextButton) break; await nextButton.click(); await page.waitForTimeout(2000); } console.log(items); await browser.close(); This collects results across multiple pages.Prerequisites
Time Estimate
15-45 minutes depending on use case complexity
Steps
Common Pitfalls
✓ Do
✗ Don't
💡 Pro Tips
✓ Use when
Use when skill capabilities match your task, clear ROI on time saved, and you can validate outputs. Best for repetitive tasks, learning, and quality improvement.
✗ Avoid when
Avoid when task requires deep expertise you can't validate, involves sensitive decisions, or when learning process is more valuable than speed of completion.
microsoft/playwright-cli
github/awesome-copilot
greekr4/playwright-bot-bypass
testdino-hq/playwright-skill
0xbigboss/claude-code
cexll/myclaude
Registry listing for playwright-scraper matched our evaluation — installs cleanly and behaves as described in the markdown.
playwright-scraper has been reliable in day-to-day use. Documentation quality is above average for community skills.
Keeps context tight: playwright-scraper is the kind of skill you can hand to a new teammate without a long onboarding doc.
Useful defaults in playwright-scraper — fewer surprises than typical one-off scripts, and it plays nicely with `npx skills` flows.
Solid pick for teams standardizing on skills: playwright-scraper is focused, and the summary matches what you get after install.
playwright-scraper is among the better-maintained entries we tried; worth keeping pinned for repeat workflows.
playwright-scraper is among the better-maintained entries we tried; worth keeping pinned for repeat workflows.
playwright-scraper reduced setup friction for our internal harness; good balance of opinion and flexibility.
playwright-scraper has been reliable in day-to-day use. Documentation quality is above average for community skills.
I recommend playwright-scraper for anyone iterating fast on agent tooling; clear intent and a small, reviewable surface area.
showing 1-10 of 72