The Scenario
A market research analyst has been comparing localized retail pricing across Germany, France, and the UK for the past three months. The methodology is simple: scrape the same 40 product URLs as they appear to local users in each country, compare the prices, flag the discrepancies.
The execution is not simple. Every week, someone has to manually configure each request with the right country code, make sure the proxy is routing through the right region, verify the response is actually the localized version and not the default, then populate three columns in the sheet — one per country.
The third person to own this workflow in two months just handed it off because it takes the better part of a Tuesday to run.
The bad version:
- For each URL in column A, manually construct three separate Scrape.do API requests — one with countryCode=DE, one with countryCode=FR, one with countryCode=GB
- Paste the three responses into columns B, C, and D for that row
- Move to row 2 and repeat 39 more times, checking each time that the response headers confirm the correct geographic routing
120 API calls. One by one. With a verification step after each one.
The Easy Way: One Prompt in SheetXAI
SheetXAI is an AI agent that lives inside your Google Sheet. It reads the URL column and the country code column together, sends each request through Scrape.do with the correct regional targeting parameter, and writes the localized HTML response into the designated column.
For each URL in column A of this sheet, scrape the page using Scrape.do with the country/region code in column B for geo-targeting and write the HTML response into column C.
What You Get
- Column C fills with the geo-targeted HTML response for each URL/country pair in columns A and B
- Rows with blank URLs or blank country codes are skipped automatically
- Failed requests (non-200 responses) write the status code into column C instead of leaving the cell empty
- The scraping respects each row's country code independently — no global setting that overrides individual rows
What If the Data Is Not Quite Ready
Country codes are inconsistent — mixed case, some written as full country names
Before scraping, normalize column B: convert any full country names to their two-letter ISO codes (Germany to DE, France to FR, United Kingdom to GB) and uppercase all values. Then scrape each URL in column A using Scrape.do with the normalized country code from column B and write the response into column C.
You want three columns — one per target country — rather than a single response column
For each URL in column A, run three Scrape.do requests: one geo-targeted to DE, one to FR, and one to GB. Write the three HTML responses into columns B, C, and D respectively.
You want to extract only the price from the localized page rather than the full HTML
For each URL in column A, scrape the page using Scrape.do with the country code in column B. Extract the displayed product price from the localized HTML and write it as a numeric value into column C.
Full localized price comparison in one pass
For each URL in column A, run three Scrape.do requests geo-targeted to DE, FR, and GB. Extract the product price from each localized page and write the three prices into columns B, C, and D. In column E, write the lowest of the three prices. In column F, write which country had the lowest price.
Geo-targeting, price extraction, and cross-country comparison — one prompt, no intermediate steps.
Try It
Get the 7-day free trial of SheetXAI and open the Google Sheet with your URL and country code columns, then ask it to run the geo-targeted scrapes and populate the localized response column. See also the spoke on scraping JavaScript-rendered pages, or the hub overview for all Scrape.do workflows.
