Skip to main content
PythonIntermediate9 min read2026-03-01

Python Web Scraping with BeautifulSoup and Requests

Extract structured data, parse HTML DOM, and respect robots.txt using Python, Requests, and BeautifulSoup4.

Prerequisites

  • Python fundamentals
  • Basic HTML and CSS selector knowledge

1. Fetching and Parsing HTML

Send HTTP GET requests with custom User-Agent headers and parse with BeautifulSoup.

python
import requests
from bs4 import BeautifulSoup

headers = {'User-Agent': 'DevFixHub-Scraper/1.0'}
response = requests.get('https://example.com', headers=headers)

soup = BeautifulSoup(response.text, 'html.parser')
heading = soup.find('h1').text
print(heading)

Best Practices & Architecture Advice

  • Always set custom User-Agent headers and add rate-limiting delays (time.sleep) between requests.

Common Mistakes to Watch Out For

  • Scraping dynamic client-rendered SPA sites with Requests instead of Playwright or Selenium.

Frequently Asked Questions

Is web scraping legal?

Scraping public data is generally legal in many jurisdictions, provided you comply with robots.txt, terms of service, and copyright laws.