Web Scraping Using Selenium Python

This is a tutorial for using Selenium Python to scrape websites
Authors

Jinjie Liu

Steve Worthington

Published

September 12, 2026

ImportantThe practice site is offline

The custom websites listed below, at iqssdss2020.pythonanywhere.com, are no longer online (checked 2026-08-29). The code on these pages is shown as it was written and is not run. A practice site of our own is planned.

Introduction

Table of Contents

In this tutorial, we first provide an overview of some foundational concepts about the World-Wide-Web. We then lay out some common approaches to web scraping and compare their usage. With this background, we introduce several applications that use the Selenium Python package to scrape websites.

This tutorial is organized into the following parts:

  1. Basic concepts of the World-Wide-Web.
  2. Comparison of some common approaches to web scraping.
  3. Use-cases for when to use the Selenium WebDriver.
  4. Illustration of how to find web elements using Selenium WebDriver.
  5. Illustration of how to fill in web forms using Selenium WebDriver.

We plan to add more applications in the near future. The content of this tutorial is a work in progress, and we are happy to receive feedback! If you find anything confusing or think the guide misses important content, please email: help@iq.harvard.edu.

Custom Websites

We decided to build custom websites for many of the examples used in this tutorial instead of scraping live websites, so that we have full control over the web environment. This provides us stability —– live websites are updated more often than books, and by the time you try a scraping example, it may no longer work. Also, a custom website allows us to craft examples that illustrate specific skills and avoid distractions. Finally, the maintainers of a live website may not appreciate us using them to learn about web scraping and could try to block our scrapers. Using our own custom websites avoids these risks, however, the skills learned in these examples can certainly still be applied to live websites.

Below I list the name and its link for each of the custom websites we have built for this tutorial:

Authors and Sources

Jinjie Liu designed the guide and wrote its content; Steve Worthington helped with the structure and edited it. We referenced the following sources:

  • Web Scraping with Python: Scrape data from any website with the power of Python, by Richard Lawson (ISBN: 978-1782164364)
  • Web Scraping with Python: Collecting Data From the Modern Web, by Ryan Mitchell (ISBN: 978-1491910276)
  • Hands-on Web Scraping with Python: Perform advanced scraping operations using various Python libraries and tools such as Selenium, Regex, and others, by Anish Chapagain (ISBN: 978-1789533392)
  • Learning Selenium Testing Tools with Python: A practical guide on automated web testing with Selenium using Python, by Unmesh Gundecha (ISBN: 978-1783983506)