René's URL Explorer Experiment


Title: A Practical Introduction to Web Scraping in Python – Real Python

Open Graph Title: A Practical Introduction to Web Scraping in Python – Real Python

Description: In this tutorial, you'll learn all about web scraping in Python. You'll see how to parse data from websites and interact with HTML forms using tools such as Beautiful Soup and MechanicalSoup.

Open Graph Description: In this tutorial, you'll learn all about web scraping in Python. You'll see how to parse data from websites and interact with HTML forms using tools such as Beautiful Soup and MechanicalSoup.

Mail addresses
?subject=Python article for you&body=A Practical Introduction to Web Scraping in Python on Real Python https://realpython.com/python-web-scraping-practical-introduction/

Opengraph URL: https://realpython.com/python-web-scraping-practical-introduction/

X: @realpython

direct link

Domain: realpython.com


Hey, it has json ld scripts:
{
  "@context": "http://schema.org",
  "@type": "Article",
  "headline": "A Practical Introduction to Web Scraping in Python",
  "image": {
    "@type": "ImageObject",
    "url": "https://files.realpython.com/media/Python-Basics-Chapter-on-Web-Scraping_Watermarked.f8d56f56c22c.jpg",
    "width": 1920,
    "height": 1080
  },
  "mainEntityOfPage": {
    "@type": "WebPage",
    "@id": "https://realpython.com/python-web-scraping-practical-introduction/",
    "lastReviewed": "2024-12-21",
    "author": {
      "@type": "Person",
      "name": "David Amos",
      "image": "https://realpython.com/cdn-cgi/image/width=400,height=400,fit=crop,gravity=auto,format=auto/https://files.realpython.com/media/me-small.f5f49f1c48e1.jpg",
      "url": "https://realpython.com/team/damos/",
      "affiliation": {
        "@type": "Organization",
        "@id": "https://realpython.com/#organization",
        "name": "Real Python",
        "url": "https://realpython.com",
        "logo": "https://realpython.com/static/real-python-logo-square-512.157ae6bf64ed.png"
      }
    },
    "reviewedBy": [
      {
        "@type": "Person",
        "name": "Aldren Santos",
        "image": "https://realpython.com/cdn-cgi/image/width=500,height=500,fit=crop,gravity=auto,format=auto/https://files.realpython.com/media/Aldren_Santos_Real_Python.6b0861d8b841.png",
        "url": "https://realpython.com/team/asantos/",
        "affiliation": {
          "@type": "Organization",
          "@id": "https://realpython.com/#organization",
          "name": "Real Python",
          "url": "https://realpython.com",
          "logo": "https://realpython.com/static/real-python-logo-square-512.157ae6bf64ed.png"
        }
      },
      {
        "@type": "Person",
        "name": "Geir Arne Hjelle",
        "image": "https://realpython.com/cdn-cgi/image/width=800,height=800,fit=crop,gravity=auto,format=auto/https://files.realpython.com/media/gahjelle.470149ee709e.jpg",
        "url": "https://realpython.com/team/gahjelle/",
        "affiliation": {
          "@type": "Organization",
          "@id": "https://realpython.com/#organization",
          "name": "Real Python",
          "url": "https://realpython.com",
          "logo": "https://realpython.com/static/real-python-logo-square-512.157ae6bf64ed.png"
        }
      },
      {
        "@type": "Person",
        "name": "Joanna Jablonski",
        "image": "https://realpython.com/cdn-cgi/image/width=800,height=800,fit=crop,gravity=auto,format=auto/https://files.realpython.com/media/jjablonksi-avatar.e37c4f83308e.jpg",
        "url": "https://realpython.com/team/jjablonski/",
        "affiliation": {
          "@type": "Organization",
          "@id": "https://realpython.com/#organization",
          "name": "Real Python",
          "url": "https://realpython.com",
          "logo": "https://realpython.com/static/real-python-logo-square-512.157ae6bf64ed.png"
        }
      },
      {
        "@type": "Person",
        "name": "Jacob Schmitt",
        "image": "https://realpython.com/cdn-cgi/image/width=400,height=400,fit=crop,gravity=auto,format=auto/https://files.realpython.com/media/profile-small_js.2f4d0d8da1ca.jpg",
        "url": "https://realpython.com/team/jschmitt/",
        "affiliation": {
          "@type": "Organization",
          "@id": "https://realpython.com/#organization",
          "name": "Real Python",
          "url": "https://realpython.com",
          "logo": "https://realpython.com/static/real-python-logo-square-512.157ae6bf64ed.png"
        }
      },
      {
        "@type": "Person",
        "name": "Kate Finegan",
        "image": "https://realpython.com/cdn-cgi/image/width=400,height=400,fit=crop,gravity=auto,format=auto/https://files.realpython.com/media/VZxEtUor_400x400.7169c68e3950.jpg",
        "url": "https://realpython.com/team/kfinegan/",
        "affiliation": {
          "@type": "Organization",
          "@id": "https://realpython.com/#organization",
          "name": "Real Python",
          "url": "https://realpython.com",
          "logo": "https://realpython.com/static/real-python-logo-square-512.157ae6bf64ed.png"
        }
      },
      {
        "@type": "Person",
        "name": "Martin Breuss",
        "image": "https://realpython.com/cdn-cgi/image/width=456,height=456,fit=crop,gravity=auto,format=auto/https://files.realpython.com/media/martin_breuss_python_square.efb2b07faf9f.jpg",
        "url": "https://realpython.com/team/mbreuss/",
        "affiliation": {
          "@type": "Organization",
          "@id": "https://realpython.com/#organization",
          "name": "Real Python",
          "url": "https://realpython.com",
          "logo": "https://realpython.com/static/real-python-logo-square-512.157ae6bf64ed.png"
        }
      },
      {
        "@type": "Person",
        "name": "Philipp Acsany",
        "image": "https://realpython.com/cdn-cgi/image/width=400,height=400,fit=crop,gravity=auto,format=auto/https://files.realpython.com/media/phi5_2.0e61b4c66f6b.jpg",
        "url": "https://realpython.com/team/pacsany/",
        "affiliation": {
          "@type": "Organization",
          "@id": "https://realpython.com/#organization",
          "name": "Real Python",
          "url": "https://realpython.com",
          "logo": "https://realpython.com/static/real-python-logo-square-512.157ae6bf64ed.png"
        }
      }
    ]
  },
  "datePublished": "2024-12-21T14:00:00+00:00",
  "dateModified": "2024-12-21T14:09:26.821615+00:00",
  "publisher": {
    "@type": "Organization",
    "@id": "https://realpython.com/#organization",
    "name": "Real Python",
    "url": "https://realpython.com",
    "logo": {
      "@type": "ImageObject",
      "url": "https://realpython.com/static/real-python-logo-square-512.157ae6bf64ed.png",
      "width": 512,
      "height": 512
    },
    "description": "Real Python is a leading provider of online Python education and one of the largest language-specific online communities for software developers. It publishes high-quality learning resources, such as tutorials, books, and courses to an audience of millions of developers, data scientists, and machine learning engineers each month.",
    "slogan": "Become a Python Expert",
    "email": "info@realpython.com",
    "sameAs": [
      "https://github.com/realpython",
      "https://www.youtube.com/realpython",
      "https://twitter.com/realpython",
      "https://x.com/realpython",
      "https://www.linkedin.com/company/realpython-com/",
      "https://www.facebook.com/learnrealpython",
      "https://www.instagram.com/realpython",
      "https://www.tiktok.com/@realpython.com"
    ]
  },
  "author": {
    "@type": "Person",
    "name": "David Amos",
    "image": "https://realpython.com/cdn-cgi/image/width=400,height=400,fit=crop,gravity=auto,format=auto/https://files.realpython.com/media/me-small.f5f49f1c48e1.jpg",
    "url": "https://realpython.com/team/damos/",
    "affiliation": {
      "@type": "Organization",
      "@id": "https://realpython.com/#organization",
      "name": "Real Python",
      "url": "https://realpython.com",
      "logo": "https://realpython.com/static/real-python-logo-square-512.157ae6bf64ed.png"
    }
  },
  "description": "In this tutorial, you'll learn all about web scraping in Python. You'll see how to parse data from websites and interact with HTML forms using tools such as Beautiful Soup and MechanicalSoup.",
  "hasPart": {
    "@type": "FAQPage",
    "mainEntity": [
      {
        "@type": "Question",
        "name": "Is Python good for web scraping?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "

Yes, Python is a popular choice for web scraping due to its ease of use and the availability of powerful libraries like Beautiful Soup and MechanicalSoup that simplify the process.

" } }, { "@type": "Question", "name": "How can you scrape websites with Python?", "acceptedAnswer": { "@type": "Answer", "text": "

You can scrape websites with Python by using libraries like urllib to fetch HTML, Beautiful Soup to parse HTML, and MechanicalSoup to interact with web forms.

" } }, { "@type": "Question", "name": "Is data scraping illegal?", "acceptedAnswer": { "@type": "Answer", "text": "

Data scraping can be illegal if it violates a website’s terms of service or involves accessing data without permission. Always check the website’s acceptable use policy before scraping.

" } }, { "@type": "Question", "name": "What tools can you use for parsing HTML in Python?", "acceptedAnswer": { "@type": "Answer", "text": "

You can use tools such as Beautiful Soup and lxml to parse HTML in Python. These libraries make it easy to navigate and extract data from HTML documents.

" } }, { "@type": "Question", "name": "How can you handle forms in web scraping?", "acceptedAnswer": { "@type": "Answer", "text": "

You can handle forms in web scraping using MechanicalSoup, which allows you to fill out and submit forms programmatically within a headless browser session.

" } } ] } }

authorReal Python
twitter:cardsummary_large_image
twitter:imagehttps://files.realpython.com/media/Python-Basics-Chapter-on-Web-Scraping_Watermarked.f8d56f56c22c.jpg
og:imagehttps://files.realpython.com/media/Python-Basics-Chapter-on-Web-Scraping_Watermarked.f8d56f56c22c.jpg
twitter:creator@realpython
og:typearticle

Links:

https://realpython.com/
Start Herehttps://realpython.com/start-here/
Learn Python https://realpython.com/python-web-scraping/
Python Tutorials →In-depth articles and video courseshttps://realpython.com/search?kind=article&kind=course&order=newest
Learning Paths →Guided study plans for accelerated learninghttps://realpython.com/learning-paths/
Quizzes & Exercises →Check your learning progresshttps://realpython.com/quizzes/
Browse Topics →Focus on a specific area or skill levelhttps://realpython.com/tutorials/all/
Community Chat →Learn with other Pythonistashttps://realpython.com/community/
Office Hours →Live Q&A calls with Python expertshttps://realpython.com/office-hours/
Podcast →Hear what’s new in the world of Pythonhttps://realpython.com/podcasts/rpp/
Books →Round out your knowledge and learn offlinehttps://realpython.com/products/books/
Reference →Concise definitions for common Python termshttps://realpython.com/ref/
Code Mentor →BetaPersonalized code assistance & learning toolshttps://realpython.com/mentor/
Unlock All Content →https://realpython.com/account/join/
More https://realpython.com/python-web-scraping/
Learner Storieshttps://realpython.com/learner-stories/
Python Newsletterhttps://realpython.com/newsletter/
Python Job Boardhttps://www.pythonjobshq.com
Meet the Teamhttps://realpython.com/team/
Become a Contributorhttps://realpython.com/jobs/
Searchhttps://realpython.com/search
https://realpython.com/search
Joinhttps://realpython.com/account/join/
Sign‑Inhttps://realpython.com/account/login/?next=%2Fpython-web-scraping-practical-introduction%2F
Browse Topicshttps://realpython.com/tutorials/all/
Guided Learning Pathshttps://realpython.com/learning-paths/
Basicshttps://realpython.com/search?level=basics
Intermediatehttps://realpython.com/search?level=intermediate
Advancedhttps://realpython.com/search?level=advanced
aihttps://realpython.com/tutorials/ai/
algorithmshttps://realpython.com/tutorials/algorithms/
apihttps://realpython.com/tutorials/api/
best-practiceshttps://realpython.com/tutorials/best-practices/
careerhttps://realpython.com/tutorials/career/
communityhttps://realpython.com/tutorials/community/
databaseshttps://realpython.com/tutorials/databases/
data-sciencehttps://realpython.com/tutorials/data-science/
data-structureshttps://realpython.com/tutorials/data-structures/
data-vizhttps://realpython.com/tutorials/data-viz/
devopshttps://realpython.com/tutorials/devops/
djangohttps://realpython.com/tutorials/django/
dockerhttps://realpython.com/tutorials/docker/
editorshttps://realpython.com/tutorials/editors/
flaskhttps://realpython.com/tutorials/flask/
front-endhttps://realpython.com/tutorials/front-end/
gamedevhttps://realpython.com/tutorials/gamedev/
guihttps://realpython.com/tutorials/gui/
machine-learninghttps://realpython.com/tutorials/machine-learning/
newshttps://realpython.com/tutorials/news/
numpyhttps://realpython.com/tutorials/numpy/
projectshttps://realpython.com/tutorials/projects/
pythonhttps://realpython.com/tutorials/python/
stdlibhttps://realpython.com/tutorials/stdlib/
testinghttps://realpython.com/tutorials/testing/
toolshttps://realpython.com/tutorials/tools/
web-devhttps://realpython.com/tutorials/web-dev/
web-scrapinghttps://realpython.com/tutorials/web-scraping/
Table of Contentshttps://realpython.com/python-web-scraping/#toc
Scrape and Parse Text From Websiteshttps://realpython.com/python-web-scraping/#scrape-and-parse-text-from-websites
Build Your First Web Scraperhttps://realpython.com/python-web-scraping/#build-your-first-web-scraper
Extract Text From HTML With String Methodshttps://realpython.com/python-web-scraping/#extract-text-from-html-with-string-methods
Get to Know Regular Expressionshttps://realpython.com/python-web-scraping/#get-to-know-regular-expressions
Extract Text From HTML With Regular Expressionshttps://realpython.com/python-web-scraping/#extract-text-from-html-with-regular-expressions
Check Your Understandinghttps://realpython.com/python-web-scraping/#check-your-understanding
Use an HTML Parser for Web Scraping in Pythonhttps://realpython.com/python-web-scraping/#use-an-html-parser-for-web-scraping-in-python
Install Beautiful Souphttps://realpython.com/python-web-scraping/#install-beautiful-soup
Create a BeautifulSoup Objecthttps://realpython.com/python-web-scraping/#create-a-beautifulsoup-object
Use a BeautifulSoup Objecthttps://realpython.com/python-web-scraping/#use-a-beautifulsoup-object
Check Your Understandinghttps://realpython.com/python-web-scraping/#check-your-understanding_1
Interact With HTML Formshttps://realpython.com/python-web-scraping/#interact-with-html-forms
Install MechanicalSouphttps://realpython.com/python-web-scraping/#install-mechanicalsoup
Create a Browser Objecthttps://realpython.com/python-web-scraping/#create-a-browser-object
Submit a Form With MechanicalSouphttps://realpython.com/python-web-scraping/#submit-a-form-with-mechanicalsoup
Check Your Understandinghttps://realpython.com/python-web-scraping/#check-your-understanding_2
Interact With Websites in Real Timehttps://realpython.com/python-web-scraping/#interact-with-websites-in-real-time
Conclusionhttps://realpython.com/python-web-scraping/#conclusion
Additional Resourceshttps://realpython.com/python-web-scraping/#additional-resources
Frequently Asked Questionshttps://realpython.com/python-web-scraping/#frequently-asked-questions
https://realpython.com/feedback/survey/article/python-web-scraping-practical-introduction/liked/?from=article-sidebar
https://realpython.com/feedback/survey/article/python-web-scraping-practical-introduction/disliked/?from=article-sidebar
Introduction to Web Scraping With Python 38m · 12 lessons https://realpython.com/courses/introduction-to-web-scraping-with-python/
Exercises Course: Introduction to Web Scraping With Python https://realpython.com/courses/exercises-introduction-web-scraping/
David Amoshttps://realpython.com/python-web-scraping/#author
https://realpython.com/python-web-scraping/#reader-comments
intermediatehttps://realpython.com/tutorials/intermediate/
web-scrapinghttps://realpython.com/tutorials/web-scraping/
Scrape and Parse Text From Websiteshttps://realpython.com/python-web-scraping/#scrape-and-parse-text-from-websites
Build Your First Web Scraperhttps://realpython.com/python-web-scraping/#build-your-first-web-scraper
Extract Text From HTML With String Methodshttps://realpython.com/python-web-scraping/#extract-text-from-html-with-string-methods
Get to Know Regular Expressionshttps://realpython.com/python-web-scraping/#get-to-know-regular-expressions
Extract Text From HTML With Regular Expressionshttps://realpython.com/python-web-scraping/#extract-text-from-html-with-regular-expressions
Check Your Understandinghttps://realpython.com/python-web-scraping/#check-your-understanding
Use an HTML Parser for Web Scraping in Pythonhttps://realpython.com/python-web-scraping/#use-an-html-parser-for-web-scraping-in-python
Install Beautiful Souphttps://realpython.com/python-web-scraping/#install-beautiful-soup
Create a BeautifulSoup Objecthttps://realpython.com/python-web-scraping/#create-a-beautifulsoup-object
Use a BeautifulSoup Objecthttps://realpython.com/python-web-scraping/#use-a-beautifulsoup-object
Check Your Understandinghttps://realpython.com/python-web-scraping/#check-your-understanding_1
Interact With HTML Formshttps://realpython.com/python-web-scraping/#interact-with-html-forms
Install MechanicalSouphttps://realpython.com/python-web-scraping/#install-mechanicalsoup
Create a Browser Objecthttps://realpython.com/python-web-scraping/#create-a-browser-object
Submit a Form With MechanicalSouphttps://realpython.com/python-web-scraping/#submit-a-form-with-mechanicalsoup
Check Your Understandinghttps://realpython.com/python-web-scraping/#check-your-understanding_2
Interact With Websites in Real Timehttps://realpython.com/python-web-scraping/#interact-with-websites-in-real-time
Conclusionhttps://realpython.com/python-web-scraping/#conclusion
Additional Resourceshttps://realpython.com/python-web-scraping/#additional-resources
Frequently Asked Questionshttps://realpython.com/python-web-scraping/#frequently-asked-questions
Remove adshttps://realpython.com/account/join/
Introduction to Web Scraping With Pythonhttps://realpython.com/courses/introduction-to-web-scraping-with-python/
Exercises Course: Introduction to Web Scraping With Pythonhttps://realpython.com/courses/exercises-introduction-web-scraping/
Python Basics: A Practical Introduction to Python 3https://realpython.com/products/python-basics-book/
IDLEhttps://realpython.com/python-idle/
editorhttps://realpython.com/python-ides-code-editors-guide/
environmenthttps://realpython.com/effective-python-environment/
Click here to download the free source codehttps://realpython.com/bonus/python-web-scraping-practical-introduction-code/
https://realpython.com/quizzes/python-web-scraping-practical-introduction/
A Practical Introduction to Web Scraping in Pythonhttps://realpython.com/quizzes/python-web-scraping-practical-introduction/
https://realpython.com/python-web-scraping/#scrape-and-parse-text-from-websites
may be illegalhttps://en.wikipedia.org/wiki/Web_scraping#Legal_issues
Remove adshttps://realpython.com/account/join/
https://realpython.com/python-web-scraping/#build-your-first-web-scraper
standard libraryhttps://docs.python.org/3/library/
urllib.requesthttps://realpython.com/urllib-request/
decode the bytes to a stringhttps://realpython.com/convert-python-bytes-to-strings/
UTF-8https://realpython.com/python-encodings-guide/#unicode-vs-utf-8
printhttps://realpython.com/python-print/
HTML codehttps://realpython.com/html-css-python/
https://files.realpython.com/media/website_aphrodite.10b67047ebc2.png
https://realpython.com/python-web-scraping/#extract-text-from-html-with-string-methods
string methodshttps://realpython.com/python-strings/#built-in-string-methods
string slicehttps://realpython.com/python-strings/#string-slicing
substringhttps://realpython.com/python-string-contains-substring/
another profile pagehttp://olympus.realpython.org/profiles/poseidon
Remove adshttps://realpython.com/account/join/
https://realpython.com/python-web-scraping/#get-to-know-regular-expressions
rehttps://docs.python.org/3/library/re.html
listhttps://realpython.com/python-lists-tuples/
re.sub()https://realpython.com/replace-string-python/#leverage-resub-to-make-complex-rules
.replace()https://realpython.com/replace-string-python/
Remove adshttps://realpython.com/account/join/
https://realpython.com/python-web-scraping/#extract-text-from-html-with-regular-expressions
another profile pagehttp://olympus.realpython.org/profiles/dionysus
Regular Expressions: Regexes in Pythonhttps://realpython.com/regex-python/
https://realpython.com/python-web-scraping/#check-your-understanding
for loophttps://realpython.com/python-for-loop/
https://realpython.com/python-web-scraping/#use-an-html-parser-for-web-scraping-in-python
Beautiful Souphttps://beautiful-soup-4.readthedocs.io/en/latest/
https://realpython.com/python-web-scraping/#install-beautiful-soup
terminalhttps://realpython.com/terminal-commands/
Remove adshttps://realpython.com/account/join/
https://realpython.com/python-web-scraping/#create-a-beautifulsoup-object
https://realpython.com/python-web-scraping/#use-a-beautifulsoup-object
profile pagehttp://olympus.realpython.org/profiles/dionysus
https://files.realpython.com/media/website_dionysos_page.8d7be251d9a0.png
lxmlhttps://realpython.com/python-xml-parser/#lxml-use-elementtree-on-steroids
Remove adshttps://realpython.com/account/join/
https://realpython.com/python-web-scraping/#check-your-understanding_1
pagehttp://olympus.realpython.org/profiles
https://realpython.com/python-web-scraping/#interact-with-html-forms
Python Basics: A Practical Introduction to Python 3https://realpython.com/products/python-basics-book/
the rest of the bookhttps://realpython.com/products/python-basics-book/
PyPIhttps://pypi.org/
MechanicalSouphttps://mechanicalsoup.readthedocs.io/en/stable/
https://realpython.com/python-web-scraping/#install-mechanicalsoup
piphttps://realpython.com/what-is-pip/
https://realpython.com/python-web-scraping/#create-a-browser-object
status codehttps://developer.mozilla.org/en-US/docs/Web/HTTP/Status
Remove adshttps://realpython.com/account/join/
https://realpython.com/python-web-scraping/#submit-a-form-with-mechanicalsoup
/loginhttp://olympus.realpython.org/login
https://files.realpython.com/media/website_login.739f488fbe74.png
/profileshttp://olympus.realpython.org/profiles
official docshttps://mechanicalsoup.readthedocs.io/en/stable/
Remove adshttps://realpython.com/account/join/
https://realpython.com/python-web-scraping/#check-your-understanding_2
login formhttp://olympus.realpython.org/login
/profileshttp://olympus.realpython.org/profiles
https://realpython.com/python-web-scraping/#interact-with-websites-in-real-time
https://files.realpython.com/media/website_dice.3cdd09061f55.png
/dicehttp://olympus.realpython.org/dice
/dicehttp://olympus.realpython.org/dice
CSS ID selectorhttps://developer.mozilla.org/en-US/docs/Web/CSS/ID_selectors
.sleep()https://realpython.com/python-sleep/
time modulehttps://realpython.com/python-time-module/
if statementhttps://realpython.com/python-conditional-statements/
Remove adshttps://realpython.com/account/join/
https://realpython.com/python-web-scraping/#conclusion
Click here to download the free source codehttps://realpython.com/bonus/python-web-scraping-practical-introduction-code/
https://realpython.com/python-web-scraping/#additional-resources
Beautiful Soup: Build a Web Scraper With Pythonhttps://realpython.com/beautiful-soup-web-scraper-python/
API Integration in Pythonhttps://realpython.com/api-integration-in-python/
Python & APIs: A Winning Combo for Reading Public Datahttps://realpython.com/python-api/
Python Basics: A Practical Introduction to Python 3https://realpython.com/products/python-basics-book/
the rest of the bookhttps://realpython.com/products/python-basics-book/
https://realpython.com/quizzes/python-web-scraping-practical-introduction/
A Practical Introduction to Web Scraping in Pythonhttps://realpython.com/quizzes/python-web-scraping-practical-introduction/
https://realpython.com/python-web-scraping/#frequently-asked-questions
https://realpython.com/feedback/survey/article/python-web-scraping-practical-introduction/liked/?from=article-footer
https://realpython.com/feedback/survey/article/python-web-scraping-practical-introduction/disliked/?from=article-footer
Introduction to Web Scraping With Pythonhttps://realpython.com/courses/introduction-to-web-scraping-with-python/
Exercises Course: Introduction to Web Scraping With Pythonhttps://realpython.com/courses/exercises-introduction-web-scraping/
https://realpython.com/team/damos/
» More about Davidhttps://realpython.com/team/damos/
https://realpython.com/team/asantos/
Aldrenhttps://realpython.com/team/asantos/
https://realpython.com/team/gahjelle/
Geir Arnehttps://realpython.com/team/gahjelle/
https://realpython.com/team/jjablonski/
Joannahttps://realpython.com/team/jjablonski/
https://realpython.com/team/jschmitt/
Jacobhttps://realpython.com/team/jschmitt/
https://realpython.com/team/kfinegan/
Katehttps://realpython.com/team/kfinegan/
https://realpython.com/team/mbreuss/
Martinhttps://realpython.com/team/mbreuss/
https://realpython.com/team/pacsany/
Philipphttps://realpython.com/team/pacsany/
Level Up Your Python Skills »https://realpython.com/account/join/?utm_source=rp_article_footer&utm_content=python-web-scraping-practical-introduction
Level Up Your Python Skills »https://realpython.com/account/join/?utm_source=rp_article_footer&utm_content=python-web-scraping-practical-introduction
https://realpython.com/feedback/survey/article/python-web-scraping-practical-introduction/liked/?from=article-comments
https://realpython.com/feedback/survey/article/python-web-scraping-practical-introduction/disliked/?from=article-comments
LinkedInhttps://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Frealpython.com%2Fpython-web-scraping-practical-introduction%2F
Twitterhttps://twitter.com/intent/tweet/?text=Interesting%20Python%20article%20on%20%40realpython%3A%20A%20Practical%20Introduction%20to%20Web%20Scraping%20in%20Python&url=https%3A%2F%2Frealpython.com%2Fpython-web-scraping-practical-introduction%2F
Blueskyhttps://bsky.app/intent/compose?text=Interesting%20Python%20article%20on%20%40realpython.com%3A%20A%20Practical%20Introduction%20to%20Web%20Scraping%20in%20Python%20https%3A%2F%2Frealpython.com%2Fpython-web-scraping-practical-introduction%2F
Facebookhttps://facebook.com/sharer/sharer.php?u=https%3A%2F%2Frealpython.com%2Fpython-web-scraping-practical-introduction%2F
Get tips for asking good questionshttps://realpython.com/python-beginner-tips/#tip-9-ask-good-questions
get answers to common questions in our support portalhttps://support.realpython.com
Real Python Community Chathttps://realpython.com/community/
“Office Hours” Live Q&A Sessionhttps://realpython.com/office-hours/
intermediatehttps://realpython.com/tutorials/intermediate/
web-scrapinghttps://realpython.com/tutorials/web-scraping/
Python Web Scrapinghttps://realpython.com/learning-paths/python-web-scraping/?utm_source=realpython&utm_medium=web&utm_campaign=related-learning-path&utm_content=python-web-scraping-practical-introduction
Introduction to Web Scraping With Pythonhttps://realpython.com/courses/introduction-to-web-scraping-with-python/?utm_source=realpython&utm_medium=web&utm_campaign=related-course&utm_content=python-web-scraping-practical-introduction
Exercises Course: Introduction to Web Scraping With Pythonhttps://realpython.com/courses/exercises-introduction-web-scraping/?utm_source=realpython&utm_medium=web&utm_campaign=related-course&utm_content=python-web-scraping-practical-introduction
Beautiful Soup: Build a Web Scraper With Pythonhttps://realpython.com/beautiful-soup-web-scraper-python/?utm_source=realpython&utm_medium=web&utm_campaign=related-post&utm_content=python-web-scraping-practical-introduction
Modern Web Automation With Python and Seleniumhttps://realpython.com/modern-web-automation-with-python-and-selenium/?utm_source=realpython&utm_medium=web&utm_campaign=related-post&utm_content=python-web-scraping-practical-introduction
Python & APIs: A Winning Combo for Reading Public Datahttps://realpython.com/python-api/?utm_source=realpython&utm_medium=web&utm_campaign=related-post&utm_content=python-web-scraping-practical-introduction
Pydantic: Simplifying Data Validation in Pythonhttps://realpython.com/python-pydantic/?utm_source=realpython&utm_medium=web&utm_campaign=related-post&utm_content=python-web-scraping-practical-introduction
Speed Up Your Python Program With Concurrencyhttps://realpython.com/python-concurrency/?utm_source=realpython&utm_medium=web&utm_campaign=related-post&utm_content=python-web-scraping-practical-introduction
https://realpython.com/account/signup/?intent=continue_reading&utm_source=rp&utm_medium=web&utm_campaign=rwn&utm_content=v1&next=%2Fpython-web-scraping-practical-introduction%2F
Continue »https://realpython.com/account/signup/?intent=continue_reading&utm_source=rp&utm_medium=web&utm_campaign=rwn&utm_content=v1&next=%2Fpython-web-scraping-practical-introduction%2F
Sign-Inhttps://realpython.com/account/login/?next=/python-web-scraping-practical-introduction/
Start Herehttps://realpython.com/start-here/
Learning Resourceshttps://realpython.com/search
Code Mentorhttps://realpython.com/mentor/
Python Referencehttps://realpython.com/ref/
Python Cheat Sheethttps://realpython.com/cheatsheets/python/
Support Centerhttps://support.realpython.com/
Learning Pathshttps://realpython.com/learning-paths/
Quizzes & Exerciseshttps://realpython.com/quizzes/
Browse Topicshttps://realpython.com/tutorials/all/
Live Courseshttps://realpython.com/live/
Bookshttps://realpython.com/books/
Podcasthttps://realpython.com/podcasts/rpp/
Newsletterhttps://realpython.com/newsletter/
Community Chathttps://realpython.com/community/
Office Hourshttps://realpython.com/office-hours/
Learner Storieshttps://realpython.com/learner-stories/
Plans & Pricinghttps://realpython.com/account/join/
Team Planshttps://realpython.com/account/join-team/
For Businesshttps://realpython.com/account/join-team/inquiry/
For Schoolshttps://realpython.com/account/join-team/education-inquiry/
Reviewshttps://realpython.com/learner-stories/
About Ushttps://realpython.com/about/
Teamhttps://realpython.com/team/
Mission & Valueshttps://realpython.com/mission/
Editorial Guidelineshttps://realpython.com/editorial-guidelines/
Sponsorshipshttps://realpython.com/sponsorships/
Careershttps://realpython.workable.com
Press Kithttps://realpython.com/media-kit/
Merchhttps://realpython.com/merch
https://www.youtube.com/realpython
https://x.com/realpython
https://www.linkedin.com/company/realpython-com
https://www.facebook.com/LearnRealPython
https://github.com/realpython/
Privacy Policyhttps://realpython.com/privacy-policy/
Terms of Usehttps://realpython.com/terms/
Securityhttps://realpython.com/security/
Contacthttps://realpython.com/contact/
https://realpython.com/

Viewport: width=device-width, initial-scale=1, shrink-to-fit=no, viewport-fit=cover

Robots: max-image-preview:large


URLs of crawlers that visited me.