Web Scraping22 min read

CSS Selectors for Scraping

Master CSS selectors to target elements precisely when scraping with BeautifulSoup or Selenium.

David Miller
January 9, 2026
0.6k11

CSS selectors let you describe elements exactly like front-end developers do.

They are powerful and concise.

Common selectors

  • div → all div tags
  • .price → class="price"
  • #main → id="main"
  • div span → span inside div
  • div > span → direct child

Example HTML

<div class="card">
  <h3 class="name">Phone</h3>
  <span class="price">$500</span>
</div>

Using select() in BeautifulSoup

card = soup.select_one("div.card")
name = card.select_one("h3.name").text
price = card.select_one("span.price").text

Selector flow

flowchart LR
  A[HTML Page] --> B[CSS Selector]
  B --> C[Matched Elements]

Why selectors matter

They:

  • reduce code
  • make scraping readable
  • avoid deep nesting logic

Remember

  • Learn selectors once, use everywhere
  • Prefer select/select_one for clarity
#Python#Intermediate#Selectors