How to extract website data into Google Sheets
Choose an export, a Sheets formula, or browser automation. Define columns, handle pagination, and check duplicates before using the results.

To extract website data into Google Sheets, first check for a built-in export. For a simple HTML table, try the IMPORTHTML function. For a task that requires opening records or navigating pages, consider browser automation with explicit columns and a review step.
The method matters less than the resulting sheet: every row should identify its source, missing values should remain visible, and pagination should not quietly drop half the directory. Here is how I would prepare a vendor directory for review. The vendor directory example below is illustrative.
1. Choose the simplest method that fits the source
If the website offers a CSV export containing the fields you need, download that file and import it into a new sheet. Inspect its date range and filters first. A successful export can still contain only the currently selected records.
Google Sheets also supports IMPORTHTML for a table or list in an HTML page. Put the page URL in A2 and try =IMPORTHTML(A2,"table",1) in an empty area. The last argument chooses the table, starting at one. Check Google's function documentation below for the syntax. This is useful when the data is available as a table; it does not describe a multi-page browsing task.
When the task involves opening detail pages, choosing filters, or collecting fields scattered across a site, browser automation may be a better fit. Infragrid works through websites and Mac apps you authorize. Whether a particular site works depends on its interface, your access, and the actions needed. Test a small sample before committing to the full directory.
2. Define the columns before collecting records
For a vendor directory, I would begin with company name, category, city, website, source URL, checked date, and review note. Keep one row per directory listing. A source URL should point to the listing that supports the row, rather than the directory homepage whenever a detail page is available.
Set a missing-value rule in advance. If a listing contains no website, leave that cell blank and write “Website not listed” in the review note. Do not infer an address from a similar company name. Decide whether branches of the same company count as separate listings before deduplicating them.
- Company name: preserve the name displayed by the source.
- Category and city: copy only the fields actually present.
- Website: distinguish the vendor's website from the directory listing URL.
- Source URL and checked date: make each observation traceable.
- Review note: explain missing fields, conflicting details, or inaccessible records.
3. Give the runbook a stopping point
Open the source you are allowed to use and identify the destination spreadsheet and tab. If you record an example in Infragrid, show one listing, the detail fields, and the destination. Review the resulting instructions so the next run uses the supplied directory instead of the example's fixed company.
A starting instruction could be: “Read the first 10 listings in this directory. Create a new review tab with company name, category, city, website, source URL, checked date, and review note. Open detail pages where needed. Leave missing values blank. Stop after 10 listings or report why fewer are accessible. Do not contact any listed company.” Replace “this directory” with your actual source and name the destination tab.
Once the sample is correct, define how a complete run should traverse Next or Load more controls. Record which pages were checked and why traversal stopped. A timeout or inaccessible next page is partial completion, even when the rows collected so far look correct.
4. Check a worked example before accepting the sheet
Suppose the source has three pages with 10 listings each. One listing appears on both page one and page two. You should reconcile 30 listing appearances to 29 unique source URLs. If two of those unique listings have no website, retain both rows with blank website cells and review notes. Missing a field is different from missing a listing.
Use the actual counts from your source to perform this check. Compare a row from each page against the original, check every flagged exception, and confirm that the first and last accessible listings are represented.
For ongoing work, decide whether the next run creates a dated snapshot or updates an existing table. A snapshot preserves what you saw at that time. An update needs a stable matching rule, such as the listing URL, so a renamed company does not become a duplicate.
When should you stop or choose another method?
Stop when access is blocked, the site asks you to log in again, or the requested fields cannot be verified. Use an authorized export or integration when that provides a more dependable result. Browser access does not imply that a site permits bulk collection; keep the task within the access and use you have permission for.
The first useful outcome is a small sheet you can trust. Infragrid gives you a place to record the task, refine its runbook, and ask an agent to carry it out with review. Start with the sample, inspect the actual spreadsheet, and expand only when the rows and exceptions make sense.
From reading to doing
Turn your next task into a runbook.
Capture how you work, refine the instructions, and give your agent a repeatable starting point.