A step-by-step guide to writing a web scraper with Python