AgentStack
SKILL verified MIT Self-run

Using Web Scraping

skill-besoeasy-open-skills-using-web-scraping · by besoeasy

Search and scrape public web content with headless Chrome and DuckDuckGo using safe practices.

No reviews yet
0 installs
18 views
0.0% view→install

Install

$ agentstack add skill-besoeasy-open-skills-using-web-scraping

✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

Are you the author of Using Web Scraping? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Web Scraping Skill — Chrome (Playwright) + DuckDuckGo

A privacy-minded, agent-facing web-scraping skill that uses headless Chrome (Playwright/Puppeteer) and DuckDuckGo for search. Focuses on: reliable navigation, extracting structured text, obeying robots.txt, and rate-limiting.

When to use

  • Collect public webpage content for summarization, metadata extraction, or link discovery.
  • Use DuckDuckGo for queries when you want a privacy-respecting search source.
  • NOT for bypassing paywalls, scraping private/logged-in content, or violating Terms of Service.

Safety & etiquette

  • Always check and respect /robots.txt before scraping a site.
  • Rate-limit requests (default: 1 request/sec) and use polite User-Agent strings.
  • Avoid executing arbitrary user-provided JavaScript on scraped pages.
  • Only scrape public content; if login is required, return login_required instead of attempting to bypass.

Capabilities

  • Search DuckDuckGo and return top-N result links.
  • Visit result pages in headless Chrome and extract title, meta description, main text (or best-effort article text), and canonical URL.
  • Return results as structured JSON for downstream consumption.

Examples

Node.js (Playwright)

const { chromium } = require('playwright');

async function ddgSearchAndScrape(query) {
  const browser = await chromium.launch({ headless: true });
  const page = await browser.newPage({ userAgent: 'open-skills-bot/1.0' });

  // DuckDuckGo search
  await page.goto('https://duckduckgo.com/');
  await page.fill('input[name="q"]', query);
  await page.keyboard.press('Enter');
  await page.waitForSelector('.result__title a');

  // collect top result URL
  const href = await page.getAttribute('.result__title a', 'href');
  if (!href) { await browser.close(); return []; }

  // visit result and extract
  await page.goto(href, { waitUntil: 'domcontentloaded' });
  const title = await page.title();
  const description = await page.locator('meta[name="description"]').getAttribute('content').catch(() => null);
  const article = await page.locator('article, main, #content').first().innerText().catch(() => null);

  await browser.close();
  return [{ url: href, title, description, text: article }];
}

// usage
// ddgSearchAndScrape('open-source agent runtimes').then(console.log);

Agent prompt (copy/paste)

You are an agent with a web-scraping skill. For any `search:` task, use DuckDuckGo to find relevant pages, then open each page in a headless Chrome instance (Playwright/Puppeteer) and extract `title`, `meta description`, `main text`, and `canonical` URL. Always:
- Check and respect robots.txt
- Rate-limit requests (<=1 req/sec)
- Use a clear `User-Agent` and do not execute arbitrary page JS
Return results as JSON: [{url,title,description,text}] or `login_required` if a page needs authentication.

Quick setup

  • Node: npm i playwright and run npx playwright install for browser binaries.
  • Python: pip install playwright and playwright install.

Tips

  • Use page.route to block large assets (images, fonts) when you only need text.
  • Respect site terms and introduce exponential backoff for retries.

See also

  • [using-youtube-download.md](using-youtube-download.md) — media-specific scraping and download examples.

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet — be the first.

Versions

  • v0.1.0 Imported from the upstream source.