We're sorry but this app doesn't work properly without JavaScript enabled. Please enable it to continue.

Build a Web Scraper in Python

Build an SEO-flavored crawler in Python that maps internal links and teaches you how scraping really works.

Also available in:

gotypescript

What you'll learn in this Python course

Use Python to build a web crawler that scrapes pages. It's a tool that any SEO expert would be happy to have. You'll make HTTP requests and parse HTML to generate reports that can easily marshaled to standard output or a file. If you're interested in getting a job doing data analysis, this project will teach you how Python can be used to build a command-line application.

Chapter List

1
Setup
Get started with web scraping by setting up your Python environment and building essential functions to normalize URLs and extract links from HTML content.
2
Crawling
Build the core crawling engine by implementing the main crawler logic, HTTP request handling, and recursive page discovery to systematically traverse websites.
3
Concurrency
Learn to speed up your web crawler using asynchronous programming and concurrency, crawling multiple pages simultaneously while respecting configurable limits.
4
Reporting
Learn to analyze and export your web scraping results with custom reporting tools that generate both human-readable summaries and JSON datasets for further analysis.

Join 989 students in the Build a Web Scraper in Python course

Read reviews of their learning experiences

The web crawler project is solid, but the async version is simultaneously too hand-holdy and hard to debug—the Data Analyst path doesn't cover the subtleties of async and recursive concurrency beforehand.

(3/5)
nokorikage  profile image

nokorikage

The Void

Very difficult course but very rewarding. However, I think it is best done alone as talking to boots only made things complicated

(3/5)
Jhomel Panogao profile image

Jhomel Panogao

Philippines

Challenging, enjoyable course. Gives you working experience with async and http libraries. It's a great starting point to launch into more extensive analysis project opportunities.

(5/5)
Kaelin Curtsinger profile image

Kaelin Curtsinger

Louisville, Kentucky

This was a fun and challenging (especially the concurrency stuff) guided project. I have a better handle on concurrency from taking this course.

(5/5)
Peter Schwenk profile image

Peter Schwenk

Newark, DE, USA

Hard and fun course

(5/5)
Diego Herrera profile image

Diego Herrera

Costa Rica

Great project. The toughest part by far is concurrency (asyncio). In my view the level of difficulty is underrated in that respect.

(5/5)
Michael Martin profile image

Michael Martin

Andorra

Very hard, you will need to read some documentation.

(5/5)
Romulo Ferreira da Silva profile image

Romulo Ferreira da Silva

São Carlos

Great project and test of skills, with real application. This project could be used as a piece of bigger projects

(5/5)
Jake Mackin profile image

Jake Mackin

Pittsburgh, PA

good

(5/5)
WICKLIFF ORINA profile image

WICKLIFF ORINA

Kenya

Showing 1-9 of 18

or view more reviews

Mediocrity doesn't cut it anymore

The only way to become a great developer is to write a lot of code

Avoid tutorial hell

by writing a ton of code

Stay motivated with

a game-like curriculum

Build portfolio projects

to prove your skills

Delve deeper

into foundational concepts

Learn flexibly online

without interrupting your life

For 1% the price of college

to minimize your financial risk

Frequently asked Questions

Got questions? We've got answers

Yes! It's free to create an account and start learning. You'll get all the immersive and interactive features for free for a few chapters. After that, if you still haven't paid for a membership, you'll be in read-only (content only) mode.