Back to Supadata in Google Sheets
SheetXAI logo
Supadata logo
Supadata · Google Sheets Guide

Scrape Web Articles Into a Google Sheet as Markdown

2026-05-14
5 min read

The Scenario

A researcher building a training dataset has 50 competitor blog post URLs in an Excel workbook — collected over two weeks from various content roundups and SEO audits. The brief is to get the article text from each one, cleaned and formatted in Markdown, so the data science team can use it as fine-tuning input. The researcher knows the URLs. What they do not have is any way to get the text out of fifty different websites without spending most of a day doing it by hand.

The bad version:

  • Open each URL in a browser, select the article body, try to copy only the content without the nav, sidebar, and cookie banner.
  • Paste into a text editor, manually strip the HTML remnants, convert formatting to Markdown by hand.
  • Repeat for 49 more pages. Discover that three URLs now 404 and two are paywalled. Log those separately.

The data science team's timeline starts next week. The researcher's afternoon is already gone.

The Easy Way: One Prompt in SheetXAI

SheetXAI is an AI agent that lives inside your Google Sheet. It reads the URLs in your sheet and, through its built-in Supadata web scraping integration, fetches cleaned Markdown content for each page and writes it directly into the sheet — failures flagged, content ready.

For each URL in column A, use Supadata to scrape the page and write the page title into column B and the full Markdown body text into column C

What You Get

  • Column B filled with the page title for each URL.
  • Column C populated with cleaned Markdown text — headings, paragraphs, and lists preserved, navigation and boilerplate stripped.
  • Rows where the scrape fails (404, paywall, bot block) noted with a failure flag rather than left blank.
  • Output ready to hand directly to the data science team without a reformatting pass.

What If the Data Is Not Quite Ready

Some pages require JavaScript rendering and return empty content

A handful of URLs in column A are React-rendered and return no meaningful text with a standard scrape.

For each URL in column A, use Supadata to scrape the page and write the Markdown content into column C — if column C would be empty, flag the row as 'JS-rendered, manual review needed' in column D

The Markdown output is too long for the fine-tuning context window

The data science team needs content truncated to 3000 characters per article.

For each URL in column A, use Supadata to scrape the page, write the page title into column B, and write the first 3000 characters of the Markdown body into column C — add a note in column D if the full content was longer

You need to track the scrape date for dataset versioning

The dataset needs a timestamp column so future refreshes can be compared.

For each URL in column A, use Supadata to scrape the page and write the title into column B, the Markdown content into column C, and today's date into column D

You want to combine scraping with duplicate detection

Some URLs in column A may point to the same article with different URL parameters.

Scrape every URL in column A using Supadata, write the title into column B and the Markdown content into column C, then check column B for duplicate titles and flag any duplicates in column D

The pattern: combining the data pull with a quality check in one prompt saves a separate audit step later.

Try It

Get the 7-day free trial of SheetXAI and open any Google Sheet with a column of article URLs and ask it to scrape the page content in one pass. If you are also auditing the site structure, look at the spoke on crawling a website URL map to pull the full page inventory first.

Stop memorizing formulas.
Tell your spreadsheet what to do.

Join 4,000+ professionals saving hours every week with SheetXAI.

Learn more