
8.1k stars · MIT · v1.1.14 (2022-07-17) · Track this in Scout
A Python scraper that learns what to extract from one example you give it.
▶Repo detailsthe review · specs · pros & cons · install
What it does
You create a scraper object, pass it a page address and a list of wanted values — the actual text you can see on the page, not a selector. It fetches the page, finds where each value sits, and records the shortest reliable rule for getting back to it. Call get_result_similar on another address and it applies the same rules there, which is how you turn one example into a list page. Rules can be saved to a file and loaded later, so the learning happens once. The whole library is a few hundred lines on top of requests and BeautifulSoup, with no browser and no framework. It does not run JavaScript, it has no crawling engine, no scheduling, no retry policy and no rate limiting — if you need those, they are yours to write around it.
Why it matters
Who it suits. Anyone who wants a specific value off a few hundred similar pages and does not want to spend the evening in the browser inspector. Price checks, directory listings, a table that one site publishes and nobody else does. It is a good fit for someone who is not a professional programmer, because the thing you have to supply is an example rather than a selector. Skip it if the pages are built by JavaScript, if you need thousands of pages fetched politely, or if the site changes its markup often, because a learned rule breaks silently when the page moves.
Verdict. Genuinely clever, genuinely small, and genuinely not maintained in the way the word usually means — so judge it on both halves. The last release on the Python package index is 1.1.14 from 17 July 2022, while code was last pushed to the repository on 29 July 2026. That gap is a real warning and it is also not the same as abandonment: the library is small enough and depends on little enough that it keeps working. Read it as a sharp tool with no support rather than a dead one. Use it for the first draft of a scrape, and if the job turns out to matter, move to scrapy/scrapy above. Edition 6 covered adbar/trafilatura for the related but different job of pulling the article text out of a page, and Edition 36 covered omkarcloud/botasaurus for scraping with a real browser.
- You supply an example, not a selector. That removes the hardest step for a non-programmer.
- Learned rules save to a file, so the pattern is reusable and inspectable.
- Tiny. Two dependencies, and you can read the whole thing in an hour.
- No release since July 2022. Code was pushed in July 2026, but nothing is being shipped.
- No JavaScript, no crawling, no rate limiting, no retries. You build all of that yourself.
- A learned rule can keep returning the wrong thing after a page changes, with no error.
scrapy/scrapyThe full framework for the same data at much larger volume, with retries and politeness built in; you write selectors yourself.
Track this in Scout- MechanicalSoup/MechanicalSoup
Handles cookies, forms and link-following for pages behind a login, which this cannot do; no learning from examples.
Track this in Scout
adbar/trafilaturaExtracts the main article text and metadata from any page without being taught, which is a different job: whole articles rather than chosen fields. Covered in Edition 6.
Track this in Scout
python3 -m venv venv source venv/bin/activate pip install autoscraper

