← All nodes
Parsing

HTML Extract / Scrape

Reads HTML — from a column, or fetched from page URLs in a column — and returns a table as rows, or one row per matching element with its text or attributes.

When to use it

Use it to scrape a price list or report table from a web page or an HTML email, or to collect the links or headings a page contains.

In a pipeline

Settings

SettingTypeRequiredDefault or hint
The column holdsselect—html
ColumnselectYesSelect column…
Extractselect—table
CSS selectortext—table, #prices, .product .name, a[href]
Attributestext—e.g. href, title

Example

A price table into rows

  • The column holds=HTML
  • Extract=Table → rows
  • CSS selector=#prices
HTML in a column
PageHtml
prices<table id="prices"><tr><th>Product</th><th>Price</th></tr><tr><td>Tea</td><td>3.50</td></tr><tr><td>Coffee</td><td>4.20</td></tr></table>
The table's rows
PageProductPrice
pricesTea3.50
pricesCoffee4.20

Worth knowing

  • Selectors: tag, #id, .class, [attr], [attr=value] (also ^= $= *= ~=), descendant and > child, plus :first-child, :last-child, :nth-child(n), :nth-of-type(n).
  • Table mode reads the first table the selector reaches ("table" when left blank); its first row gives the column names. Run or preview once so pickers downstream learn them.
  • Text mode adds a Text column and Attributes mode one column per attribute listed (href, title) — one row per match.
  • With Page URLs, each page is fetched (four at a time, public addresses only) and the URL column is kept; pages that fail are counted in the note.
  • To route rows by what was found, follow it with Filter Rows.

Others in Parsing