| """ | |
| Example 2: Python - DynamicSession (Playwright browser automation, visible) | |
| Scrapes all 10 pages of quotes.toscrape.com using a persistent browser session. | |
| The browser window stays open across all page requests for efficiency. | |
| Best for: JavaScript-heavy pages, SPAs, sites with dynamic content loading. | |
| Set headless=True to run the browser hidden. | |
| Set disable_resources=True to skip loading images/fonts for a speed boost. | |
| """ | |
| from scrapling.fetchers import DynamicSession | |
| all_quotes = [] | |
| with DynamicSession(headless=False, disable_resources=True) 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}") | |