Skip to content
All posts

How to extract a table from many pages without code

No-code tools5 min read
How to extract a table from many pages without code: the post's first code sample

You have a handful of product pages, job posts or listings open in tabs, and you want them side by side in a spreadsheet. The Extract to table tool in the scrape.land dashboard does exactly that without code: paste up to 20 page URLs, describe the columns in plain words, and each page becomes one row you can download as a CSV.

Where to find it

Sign in, open Tools in the dashboard sidebar and pick Extract to table. The Tools page lists three tools (Local businesses, Lead Finder and Extract to table), and every run uses request units from your plan, exactly like the API.

The first time you open Tools it asks for a key. Click Create a key for Tools, or paste a key you already have and click Use this key. The key is kept in that browser only, and it shows up with your other API keys, where you can revoke it like any other.

Step 1: paste the page URLs

Put one URL per line in the first box. A few details worth knowing:

The tool works best when every URL is the same kind of page, for example 20 product pages from different shops, or 15 job ads. Mixing a product page with a news article gives you a table with two sets of columns and a lot of empty cells.

Step 2: describe the columns

The second box, What to pull from each page, takes a plain description of the columns you want, separated by commas. The placeholder shows the idea: product name, price as a number, in stock (true or false).

If you are not sure where to start, click one of the Recipes above the box. Each one fills in a tested description you can edit:

RecipeColumns it asks for
Product pageproduct name, brand, price as a number, currency, in stock (true or false)
Job postjob title, company, location, remote (true or false), salary range, date posted
Property listingaddress, price as a number, bedrooms, bathrooms, floor area, listing agent
Company profilecompany name, what it does in one sentence, headquarters city, year founded, contact email
Articleheadline, author, publish date, a two-sentence summary

Writing your own description is mostly about being specific:

The column headers come from the field names the model returns for your description, so short, plain wording gives tidy headers.

Step 3: run it and read the table

Click Extract. The status line shows an estimate of the units the run will use, then counts pages as they finish. Three pages are read at a time, and the table fills in as each one lands, so you can watch the first rows while the rest are still running. Stop ends the run early and keeps the rows you already have.

The table's first column, Page, links to each URL. The other columns are every field returned by any page, so if one page has a field the others lack, those cells are simply blank. If the model returns a list for a page (say, a category page with many products), the tool keeps the first item, because the tool's promise is one row per page. When a page fails, its row shows the error across the whole width instead of data.

Step 4: download the CSV

When the run finishes, click Download CSV. The file has a url column followed by your columns, one row per page that succeeded; failed pages are left out. It opens directly in Excel, Numbers and Google Sheets, accents and currency symbols included. As a safety measure, a cell that starts with = or @ is prefixed with an apostrophe, so text scraped from a page can never run as a spreadsheet formula.

Each run is also saved under Recent searches at the top of the tool, in your browser, so you can reopen a table after a refresh without paying for it again.

Which plan you need, and what it costs

Extract to table uses AI extraction, so it needs the Scale plan or higher. On a lower plan the run stops with a message saying AI extraction starts at Scale; CSS and XPath extraction through the API still works on every plan.

Each page is one fetch (1 request unit) plus the fast AI model (from +2 units), so plan on about 3 units per page. A very long page can cost a little more; the Usage page shows the exact figure. A fetch or AI extraction that fails is not billed. See pricing.

What the tool does under the hood

For each URL, the tool sends one ordinary API request with your description as the prompt and the fast model. If you outgrow the tool, this is the call to automate:

curl
curl https://scrape.land/v1/extract \
  -H "X-Api-Key: YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url": "https://shop.example/item/42",
       "prompt": "product name, price as a number, in stock (true or false)",
       "model": "fast"}'

Move from the tool to the API when you need more than 20 pages at once, want to run on a schedule, or want the same column names every time. The API accepts a schema that pins the output keys, and "render": true for pages that only show their content after JavaScript runs. The Tools page does not render JavaScript, so a page like that shows an error in its row.

Next steps

To pin exact column names, read structured data with an AI schema. For many URLs from code, see batch scraping. Every parameter is in the docs, and you can create a free account to look around the dashboard.

Start free with 1,000 requests Read the docs