How to find HTML elements by class?

When web scraping, the most common way to navigate HTML data is to find elements by class name. For that, we can use CSS or XPath Selectors:

CSS selectors

  • Use the .class notation, which will find any nodes that contain full class name:
`.some-class`
will match:
`<a class="some-class"></a>`
`<a class="first some-class third"></a>`
  • Use the [class*="<partial>"] notation which will find any nodes that contain a given string:
`[class*="some-class"]`
will match:
`<a class="some-class"></a>`
`<a class="first some-class third"></a>`

Xpath selectors

Alternatively, XPath selectors can be used with similar functions:

  • //*[@class="link"] will find any element where the class is exactly equal to "link"
  • //*[contains(@class, "link")] will find any element where class contains the string "link"
Question tagged: Css Selectors, XPath, Data Parsing

Related Posts

Ultimate CSS Selector Cheatsheet for HTML Parsing

Ultimate companion for HTML parsing using CSS selectors. This cheatsheet contains all syntax explanations with interactive examples.

Web Scraping With Ruby

Introduction to web scraping with Ruby. How to handle http connections, parse html files for data, best practices, tips and an example project.

Web Scraping With NodeJS and Javascript

In this article we'll take a look at scraping using Javascript through NodeJS. We'll cover common web scraping libraries, frequently encountered challenges and wrap everything up by scraping etsy.com