Opening episode of the Learn Scrapling series: making sure you have the foundational skills required — Python 3.10+, pip and venv, HTML/CSS selectors, XPath, and HTTP concepts. It also covers setting up Scrapling along with its optional extras, Chromium for the browser fetcher, and browser devtools for selector inspection.

Welcome to the Learn Scrapling series! Over the next 23 episodes we'll take Scrapling apart — a Python library for web scraping that is fast, adaptive, and resistant to anti-bot defenses — from environment setup all the way to production-grade techniques.
Episode 0 is pure foundation. Its single goal: make sure your skills and environment are ready before you start practicing. We won't cover Scrapling theory here; we'll just make sure everything is installed and working. The real technical content starts in episode 1.
Scrapling requires Python 3.10 or newer. Why 3.10? Because the library leverages modern syntax and typing features that are only available in that version and above. Verify your version with:
python --version
pip --versionIf the output shows a version below 3.10, upgrade first via the official Python installer or your OS package manager. Beyond the version, make sure you're comfortable with the following concepts:
pip for installing packages and venv for an isolated virtual environment.async/await, because episode 6 will use AsyncFetcher.You don't need to master all of them yet — just be familiar enough not to be caught off guard when we write code in episodes 3 and 4.
Scrapling picks elements on a web page, so you need to understand these three things. First, HTML structure: know what tags, attributes, and nested elements are. Second, CSS selectors: how to point at elements like div.article, #main, or a[href^="https"]. Third, XPath: how to point at elements by their position in the document tree, for example //article//h2/text().
You don't need to memorize every syntax. What matters is understanding the difference between CSS selectors (concise, class/id based) and XPath (expressive, can navigate text and relationships between elements). Scrapling supports both through .css() and .xpath(), which we'll cover in episodes 4 and 5.
Web scraping is, at its core, speaking HTTP with websites. At minimum, understand these three things:
200 means success, 301/302 redirect, 403 blocked, 404 not found, 429 rate-limited.User-Agent, Accept, Referer, and Cookie determine how the server "sees" your requests.Scrapling manages all of this programmatically — for example, the impersonate parameter that disguises your TLS fingerprint — but you need to understand what happens under the hood so you don't get lost when debugging. Episode 3 covers HTTP and sessions in depth.
Best practice for any Python installation: wrap it in a virtual environment so it doesn't pollute global packages. Create and activate your environment:
python -m venv scrapling-env
source scrapling-env/bin/activateOn Windows, activate with scrapling-env\Scripts\activate. Once the prompt shows your environment name, you're good to go. Every pip command from here on installs into this environment, not the system.
Install Scrapling with the following command:
pip install scraplingWith this basic installation, Fetcher, AsyncFetcher, and Adaptor are ready to use. For more specific features, Scrapling offers optional extras:
scrapling[fetchers] — adds StealthyFetcher and PlayWrightFetcher, which require a browser.scrapling[ai] — LLM integration for intelligent extraction (episode 19).scrapling[shell] — an interactive shell for quick exploration (episode 21).scrapling[all] — everything at once.For this series, install the full version right away so you don't have to go back and forth:
pip install scrapling[all]Verify the installation by printing the version:
import scrapling
print(scrapling.__version__)Run it with python check-version.py. If a version number appears, the installation was successful.
StealthyFetcher and PlayWrightFetcher work by controlling a real browser — not just an HTTP request. They require Chromium or Chrome. The first time you use a browser fetcher, Scrapling will try to download Chromium automatically. You can also set it up manually:
python -m playwright install chromiumUsing a real browser matters when the target website is rendered by JavaScript or protected by anti-bot defenses. You'll feel the difference starting from episodes 7 and 8.
The last tool you must set up: browser devtools. Open the target site, right-click the element you want to scrape, and choose Inspect. From the Elements panel you can:
Devtools are your source of truth when a selector fails. When .css(".price") returns nothing, the first step is to open devtools and confirm the actual DOM structure. This habit will save you time and time again throughout the series.
Before moving on, make sure these four things work:
python --version outputs version 3.10 or newer.pip install scrapling[all] succeeded.import scrapling and printing __version__ works.StealthyFetcher and PlayWrightFetcher.If everything is green, your environment is officially ready for the journey.
Episode 0 is done. Here's what you must take away:
scrapling[all] so all fetchers and features are available.Next, in episode 1 we answer the most important question before writing any code: where Scrapling came from, who created it, and why we need it compared to BeautifulSoup or Scrapy. See you there!