The short answer to how to scrape a website without code: let a spreadsheet do it. If the data sits in a table or a list on a public page, Google Sheets pulls it in with one formula, IMPORTHTML, and Excel does the same through Power Query's From Web command. Both come with software you already have, both refresh, and neither asks you to program anything. They stop at pages that build their content with JavaScript, pages behind a login and jobs that span hundreds of pages. That is where an agent with a real browser takes over.
How to scrape a website with a spreadsheet you already have
Scraping means copying data from web pages into rows and columns you can sort, filter and compare. A spreadsheet can do the copying itself, because both Google Sheets and Excel can fetch a page and read its structure. The whole method is four moves: find the page, find the table or element that holds the data, import it, then freeze a copy when you need a record.
Check one thing before you start. Open the page, right-click and view the page source, then search for a value you can see on screen, such as a product name. If the value is in the source, a spreadsheet can read it. If it is missing, the page loads its data after opening and the free route will return nothing useful. Our guide to web scraping explains why pages behave so differently.
The spreadsheet route fits small, steady jobs: one supplier price table, a public directory, a schedule, a league table, a list of store locations. It suits anyone who wants to scrape data from a website a few times a month and would rather not learn a new tool for it.
Google Sheets: IMPORTHTML for tables, IMPORTXML for the rest
IMPORTHTML takes three arguments: the page address, the word "table" or "list", and a number that says which table or list on the page you want, counting from 1.[1] Tables and lists are numbered separately, so a page can have a table 1 and a list 1.
- Open a blank sheet and paste the page address into cell A2, including the https:// part.
- In A4, type
=IMPORTHTML(A2,"table",1)and press Enter. - If the wrong table arrives, change the 1 to 2, then 3, until the right one appears.
- If the data is a bulleted or numbered list, replace "table" with "list".
- Leave the cells below and to the right empty. The import fills them.
When the data is not in a table, use IMPORTXML. It takes the address and an XPath query, a short expression that describes where the data sits in the page. With the XPath from Google's own sample, =IMPORTXML(A2,"//a/@href") returns every link on a page. In the same way //h2 returns every second-level heading and //span[@class='price'] returns each element marked with that class name. This is the part people search for as importxml google sheets, and it rewards ten minutes of trial and error.
Keep each page address in its own cell and point the formula at that cell. Swapping the page later means editing one cell, not rewriting formulas.
Sheets keeps the import alive. IMPORTHTML, IMPORTXML and IMPORTDATA check for updates every hour while the document is open, and reloading the tab does not force a refresh; deleting the formula and entering it again does.[2] The imported cells are a live view, not a record. To keep today's numbers, copy the range and use Paste special, Values only, on another tab.
Scrape a website to Excel with Power Query
Excel's route is a menu instead of a formula. Microsoft's steps for Excel for Microsoft 365 are short.[3]
- Open a workbook and select the Data tab.
- In the Get & Transform section, select From Web.
- Paste the page address into the box and select OK.
- In the Navigator pane, click each detected table. A preview appears on the right.
- Select Load. Excel places the data in the workbook as a table.
The result stays connected to the page, so refreshing the query pulls the current version. Power Query also cleans as it loads. You can open the editor from the Navigator, remove columns, change types and filter rows, and those steps repeat at every refresh.
When the Navigator finds no table, look for Add table using examples. Microsoft's Power Query documentation describes it this way: you type a couple of sample values from the page into a grid, and Power Query extracts the other values that fit the pattern.[4] It is the closest thing to point-and-click scraping in software you already have. It handles product cards and listings that are consistent but not laid out as a table.
Three supplier pages, one comparison sheet
Picture a small landscaping company that buys from three suppliers. Each supplier publishes a price table on a public page. The owner wants them side by side every Monday.
She creates one tab per supplier. On each tab, A2 holds the page address and A4 holds =IMPORTHTML(A2,"table",1). Two tables land on the first try. The third needs index 2, because the page opens with a small layout table. A fourth tab, Compare, uses ordinary lookups to line up the items she buys most.
On Monday she opens the file, waits for the imports to settle and pastes the Compare tab as values into a tab named with the date. Total setup: under half an hour. She also compares five rows against the live pages by eye. A site redesign can shift a column without any error message.
Imports overwrite themselves at each refresh. Paste the range as values into a tab named with the date whenever you need to compare this week with last week.
Site rules and server load come before the first import
Free web scraping is still collecting from someone else's site. Read the site's terms and its robots.txt file, which lists the areas the owner asks automated visitors to stay out of. Skip personal data you have no right to use: names, emails and phone numbers of private people are not raw material. And keep the load light. One import per page, refreshed hourly at most, is polite. Dozens of formulas hitting the same small site are not.
Google limits import functions across all the spreadsheets you created, and a collaborator's edits can count against you. When the loading error appears, reduce the number of import formulas.
Five signs the spreadsheet has run out of road
The free route breaks in specific, recognizable ways.
- The cells come back empty. The page builds its content with JavaScript, and import formulas read only the HTML source.
- The data is behind a login. A formula cannot sign in for you.
- The list runs over many pages. Every page needs its own formula, and "load more" buttons cannot be clicked.
- You need hundreds of pages. Google throttles heavy use of import functions across all the spreadsheets you created.
- You need a schedule. Sheets refreshes only while the document is open.
One of these is an annoyance. Two or more mean the job needs a browser that an agent can drive. The agent opens pages the way a person does, waits for them to render, clicks through and writes rows.
A ready-made AI web scraping agent takes a single page, a site map or a crawl, clicks load-more buttons and returns a CSV or spreadsheet with a source URL for each fact. Its agent browser, a cloud Chromium, renders JavaScript-heavy sites and hands the browser to you at a login, 2FA code or CAPTCHA.
- Start from the web scraping agent
- Give it the pages and the fields you want
- Add a scheduled trigger or a page-change watch
Gumloop suits a recurring job on public pages that the whole team relies on, such as a weekly price or listings sheet where someone will ask where a number came from. Its setup is covered in our guide to Gumloop web scraping. If your pages sit behind an account you already use every day, the next option starts from a different place: your own browser.
Browser Operator works in your own Chrome or Edge with the sessions you are already signed in to, so it can read pages a formula never reaches. For long lists, Wide Research runs one sub-agent per item and merges the results into a table; the Google Drive connector turns it into a Sheet.
- Enable Browser Operator in Chrome or Edge
- Authorize the session and describe the rows you need
- Add a Schedule automation for repeat runs
That makes Manus AI the natural step for a solo professional pulling data from portals they already log in to, with the option to grow into batches later. Our walkthrough of the Manus AI Browser Operator shows the setup. Not every job is a batch, though. Some come up once and never again.
The Chrome extension can click buttons, fill forms and extract data from the page you are on. AI Sheets collects the data and exports an XLSX file, and Workflows can repeat a job on a schedule with Google Sheets among the integrations.
Whichever agent you pick, keep the habit from the spreadsheet days: compare a handful of rows against the live pages before the data goes into a report or a system of record. Agents misread pages too. For the full set of parts a collection pipeline needs, and how more products cover them, see our comparison of web scraping tools.
Frequently asked questions
Is free web scraping with a spreadsheet enough for a small business?+
For a few public pages with tables or lists, yes. It stops being enough when pages need a login, load their data with JavaScript or have to be collected on a schedule while nobody has the file open.
Why does IMPORTXML return an empty result or an error?+
Usually the XPath matches nothing in the page's HTML source, often because the page fills in its content after loading. If Google Sheets says the result is too large, narrow the XPath so it returns less data.
Can I use NOW() or RAND() to force an import to refresh?+
No. Google blocks import functions from referencing volatile functions such as NOW, RAND or RANDBETWEEN. To refresh on demand, delete the formula and enter it again.
Can I scrape data from a website that requires a login?+
Not with a spreadsheet formula. An agent that works inside a browser session can, with you signing in yourself. Check first that the site's terms allow automated collection from your account.
One table tonight, an agent only when it breaks
Pick the single page you check most often and import it with IMPORTHTML or From Web before you close this tab. If the table arrives, you have a working scraper and a reason to add the second page. If the cells stay empty, or the page wants a password, you have learned in five minutes that this job belongs to a browser agent. Either way you know which side of the line you are on.
- [1] Google Docs Editors Help (Nov 2026) https://support.google.com/docs/answer/3093339?hl=en
- [2] Google Docs Editors Help (Nov 2026) https://support.google.com/docs/answer/12188454?hl=en
- [3] Microsoft Support (Nov 2026) https://support.microsoft.com/en-us/excel/get-started/import-data-from-the-web
- [4] Microsoft Learn (Nov 2026) https://learn.microsoft.com/en-us/power-query/connectors/web/web-by-example