Blog/How-To

Scrape a Website to Google Sheets on a Schedule

··8 min read

You can scrape a website into Google Sheets without a CSV download, a copy-paste step or a Zap in the middle. The setup is the same each time: build the scrape once, save it, and let a schedule write the rows to a sheet while your computer is off. This guide walks through one worked recipe and then covers the part most guides skip: what the sheet looks like after the tenth run, and how to find what changed.

It uses Lection, an AI web scraper for Chrome. Where a feature depends on your plan, the guide says so.

The short answer

  1. Scrape the page you want in Chrome with Lection and save the scrape.
  2. Create a schedule for it (hourly, daily or weekly) and choose Google Sheets under Delivery.
  3. Pick a spreadsheet, choose whether runs append to one tab or create a new tab each time, and click Run now to test.

Sheets delivery needs Standard, Professional or the 30-day Standard trial. The free plan sends scheduled results by email only.

The recipe: a paginated list with detail pages

Take a realistic job: a supplier's catalog (or a job board, or a directory) where the list spans several pages and a few fields, such as stock status or contact details, only appear on each item's own page. You want the whole thing in one sheet every morning.

Step 1: Build the scrape once

Open the first page of the list in Chrome and describe the fields in the Lection side panel, for example: "name, price, stock status, and the product link." Always include the link as a column. You will use it later to spot repeats and new items.

Then ask for every page, and for the detail-page fields if you need them. The multi-page guide covers numbered pages, Load More buttons, infinite scroll and detail pages in more detail. Check three or four rows of the preview against the page before saving, because anything wrong in the first run is wrong in every scheduled run.

Save the scrape. A schedule re-runs a saved scrape, so this step is what turns a one-off extraction into something repeatable.

Step 2: Create the schedule

Open Scheduled Scrapes, create a schedule for the saved scrape and pick Hourly, Daily or Weekly with your timezone. Hourly needs Standard or above. For most lists, daily is plenty, and it costs less (see the limits below).

Step 3: Choose Sheets under Delivery

In the Delivery section, select Sheets, click Connect Google Sheets and approve access for your Google account. Then either click Select Spreadsheet to use a file you already have, or New spreadsheet to create one from Lection. Pick a spreadsheet your connected account can edit.

Step 4: Decide how runs are written

This choice shapes everything you do with the data afterwards, so it is worth a minute.

ModeWhat happensBest for
Append to existing tabEach run adds its rows under the sheet name you set, so one tab keeps growingA running history, charts over time
Create new tab each runEach run writes a tab with the prefix you chooseDated snapshots, comparing one run to the last

Neither mode updates rows in place. Lection appends; it does not match existing rows by a key. If you need an upsert on a unique column, use the n8n Google Sheets template, or the Airtable or Supabase destinations, which support upsert. The Google Sheets integration page lists the details.

Step 5: Save and click Run now

Save the schedule, then click Run now. The first rows should land in your sheet within a few minutes. If the columns look wrong, fix the scrape description, save, and run again before the schedule fires on its own.

What to do with the sheet after a few runs

A schedule gets you rows. The useful part is turning repeated rows into answers like "what is new?" and "what changed?" These formulas use the link column you included in step 1. Adjust the column letters to your sheet.

Find items that appeared once (append mode)

In append mode, an item seen on every run shows up many times. An item that shows up exactly once is one you have only just collected, or one that disappeared after a single run. In a helper column next to your data, use:

=COUNTIF(B:B, B2)=1

where column B holds the product or listing link. Filter the helper column for TRUE to see items listed in only one run so far. This is a rough signal, not a diff, so check a few against the site.

Show the latest value per item (append mode)

To collapse the history to one row per item, put this on a new tab:

=UNIQUE(Data!B2:B)

It lists each link once. Then look up the price or status you care about from the original tab with a lookup formula. Note that a plain lookup returns the first match, which is the oldest row, so sort by the newest run first or reverse the range if you want the latest value.

Compare two runs (new-tab mode)

With a new tab per run, "new since last run" is a comparison between two tabs. If the latest run is on tab Run2 and the one before it is on Run1 (rename them as you wish), and the link is in column B:

=FILTER(Run2!A2:D, ISNA(MATCH(Run2!B2:B, Run1!B2:B, 0)))

returns the rows on the new tab whose link is not on the old tab. Swap the two tabs to find items that disappeared. Check the tab names Lection created in your own sheet, because the formula must match them exactly.

Already using a scraper plus Zapier?

A common setup is a scraper that runs on a timer and hands each row to Zapier, which writes it to Google Sheets. That works, and there are good reasons to keep it: if the same rows also need to reach Slack, a CRM or other apps, a Zap is the right place for that.

If Sheets is the only destination, you can drop the middle step and let Lection write to the sheet directly, which leaves one thing to maintain instead of two. If you want both, Lection can send finished runs to Zapier as well. The Zapier app is in beta; the webhook route works today. See the Zapier integration page for the current setup.

Limits to know before you schedule

  • Plan. Sheets delivery is on Standard, Professional and the 30-day Standard trial, not on the free plan.
  • Frequency. Daily on Free (email delivery), hourly on Standard, every 15 minutes on Professional.
  • Credits. Cloud runs bill by page, not by row: 1 credit covers 20 cloud pages. A run that fails before starting costs nothing. Detail pages count as pages, so a list with detail pages on every row uses credits fastest.
  • Pages per run. A single run covers up to 10 pages on the free plan, 50 on Standard and 200 on Professional.
  • Logins. Scheduled runs work best on pages that do not need you to be logged in.
  • Sites change. A redesign can move a field or break the next-page link. If a run comes back empty or wrong, reopen the scrape, adjust it and save again.
  • Terms of use. Read the site's terms and robots rules and keep the schedule reasonable. A daily run is usually enough.

Try it

Install the free extension, build the scrape on a list you actually need and download it once to check the columns. When you are ready to put it on a schedule, start the 30-day Standard trial. It is free for 30 days, then $29 per month, a card is required, and it is for first-time subscribers only.

If you are comparing tools first, the Octoparse alternative page explains where Lection differs.

FAQ

How do I scrape a website into Google Sheets automatically? Save the scrape in the Lection Chrome extension, create a schedule for it, choose Sheets under Delivery and pick a spreadsheet. Each run writes its rows to that sheet.

Does my computer need to be on? No. Scheduled runs happen in the cloud. You only need Chrome to build and save the scrape the first time.

Do I need a paid plan? Yes, for Sheets delivery: Standard, Professional or the 30-day Standard trial. The free plan emails results.

Will it update existing rows? No. It appends rows, either to one tab or to a new tab each run. Use the formulas above to find changes, or an upsert destination if you need a unique key.

Can I use a spreadsheet I already have? Yes. Click Select Spreadsheet and choose one from your Google account, or create a new one from Lection.


Ready to supercharge your research?

Join thousands of researchers using Lection to capture and organize the web. It's free to get started.