How to select elements of a specific position in XPath?

To select elements of a specific position the position() function can be used with a predicate:

<!-- select all product detail urls --> <html> <div> <h2>Product 1</h2> <a href="/product/1/reviews">reviews</a> <a href="/product/1/details">details</a> <a href="/product/1/refunds">refunds</a> </div> <div> <h2>Product 2</h2> <a href="/product/2/reviews">reviews</a> <a href="/product/2/details">details</a> <a href="/product/2/refunds">refunds</a> </div> </html>

Note that using position() when web scraping is not recommended as HTML element position is likely to change. Instead other methods like selection by attribute value is a more reliable way if applicable.

Question tagged: XPath

Related Posts

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.

Parsing HTML with Xpath

Introduction to xpath in the context of web-scraping. How to extract data from HTML documents using xpath, best practices and available tools.

Web Scraping With PHP 101

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