Files
wehub-resource-sync 247153575d
Tests / tests (map[TOXENV:py310], macos-latest, 3.10) (push) Has been cancelled
Tests / tests (map[TOXENV:py311], macos-latest, 3.11) (push) Has been cancelled
Tests / tests (map[TOXENV:py312], macos-latest, 3.12) (push) Has been cancelled
Tests / tests (map[TOXENV:py313], macos-latest, 3.13) (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 12:01:50 +08:00

27 lines
952 B
Python

"""
Example 3: Python - StealthySession (Patchright stealth browser, visible)
Scrapes all 10 pages of quotes.toscrape.com using a persistent stealth browser session.
Bypasses anti-bot protections automatically (Cloudflare Turnstile, fingerprinting, etc.).
Best for: well-protected sites, Cloudflare-gated pages, sites that detect Playwright.
Set headless=True to run the browser hidden.
Add solve_cloudflare=True to auto-solve Cloudflare challenges.
"""
from scrapling.fetchers import StealthySession
all_quotes = []
with StealthySession(headless=False) as session:
for i in range(1, 11):
page = session.fetch(f"https://quotes.toscrape.com/page/{i}/")
quotes = page.css(".quote .text::text").getall()
all_quotes.extend(quotes)
print(f"Page {i}: {len(quotes)} quotes (status {page.status})")
print(f"\nTotal: {len(all_quotes)} quotes\n")
for i, quote in enumerate(all_quotes, 1):
print(f"{i:>3}. {quote}")