# Changelog of Wine-Searcher scraper by region and appellation (`mrbridge/wine-searcher-region-scraper`) Actor

- **URL**: https://apify.com/mrbridge/wine-searcher-region-scraper/changelog.md
- **Full Actor documentation**: https://apify.com/mrbridge/wine-searcher-region-scraper.md

## Changelog

### 0.1.22 (2026-09-26)

*Fixes*

- The Burgundy example returned no wine about one day in two since 26 August. Pages whose currency menu did not render were dropped as if they were in another currency. When the menu is missing, the currency is now read from the row price symbols, and the page is kept only if every priced row shows US dollars on a page served to the US exit node. A second layout of the menu, which shows the currency without marking it as selected, is read too.
- Countries shown without ranking tabs, 27 of the 123 country pages checked, returned nothing under Most Popular. Their single list is now published once its popularity order checks out. The four other rankings are still refused for them, since those countries have no such list.

*Changes*

- The run summary adds `currencyFromRowSymbolsPages` and `currencyMismatchSnapshots`. A page dropped for its currency leaves the first 20,000 characters of its HTML in the run's key-value store, three pages at most, so the cause can be diagnosed.

BREAKING CHANGE

- `product_url` is now one link per wine, `https://www.wine-searcher.com/find/<wine>`, without the `/1/` ending it used to carry. A link to a specific vintage keeps its year. The same wine linked in two ways by two pages is now published and billed once. If you join datasets on `product_url` across runs, links written before this release will not match the new ones: re-key once on the new form.

### 2026-08-20 (third release of the day)

*Fixes*

- A page could show one ranking while another was requested, and the wines it listed were published and billed as if they matched. A Bordeaux run asking for Most Popular came back with ten wines all scored 97 out of 100, in no popularity order, which is another ranking entirely. The scraper now identifies the ranked list by the container Wine-Searcher puts it in, checks that the active tab is the one that was asked for, and, for Most Popular, checks that the popularity ranks are actually in order.
- A page whose ranking cannot be confirmed is fetched once more. If the second response is no better, no wine from that page is published and none is billed. An error row records the ranking that was requested and the one that was received, the run continues with the next page, and it still finishes successfully. After three such pages in a row the run stops early rather than walking a long pagination it cannot use, and says so in the summary.

*Changes*

- The run summary now reports the ranking that was requested and how many pages were dropped because the page did not match it, with the reason for each.

Result counts follow the page. A large region usually fills a page with about 25 wines, a small appellation legitimately returns fewer, and no page size is assumed anywhere.

### 2026-08-20 (second release of the day)

*Changes*

- Pages are now always collected from a US exit node, so Wine-Searcher serves them in US dollars and every converted price starts from the same currency.

BREAKING CHANGE

- Removed `avg_price`, `currency` and `region_url` from the dataset items. Each wine now carries a single price, `avg_price_converted`, in the currency named by `target_currency`. Code reading `avg_price` or `currency` must read `avg_price_converted` instead, and `region_url` has no replacement.

*Fixes*

- Prices are no longer off by a factor of about 100 on some runs. The proxy used to pick a random country, Wine-Searcher answered in that country's currency and number format, and one wine in the reference run was published at 15,186.46 US dollars instead of about 152. Every request now goes out through a US exit node.
- A page that still comes back in another currency is fetched once more, and dropped if it comes back wrong again. No wine from that page is published or billed, an error row records the currency that was received, and the run continues with the next page. A misread amount is worse than a missing one.

### 2026-08-20

*Features*

- New output field `popularity_score`: the popularity rank as a sortable integer, 30172 for "30,172nd in popularity". It is `null` when a row publishes no rank, never 0, since a smaller number means a better rank. The existing `popularity` string is unchanged.

*Changes*

- The input form now uses the 491-option country and wine region dropdown as its only destination selector. The custom URL field has been removed from the form.
- Results now lead with the currency you selected. The Overview shows the converted price and the selected currency, and the original price and currency move to the end of each record, where the dataset schema documents them as the original values. Wine-Searcher serves prices in the locale of whichever country the proxy landed in, so those originals are not a fixed currency.
- `target_currency` is now filled on every delivered wine, including rows where no conversion was possible. A row reads as "asked for EUR, no amount available" instead of as "no conversion requested".
- Removed the custom dataset view that collided with Apify's native "All fields" view, which is why the Console listed "All fields (1)" and "All fields (2)". The final Console rendering will be verified after deployment.

BREAKING CHANGE

- Removed the custom dataset view ID `wines`, which duplicated Apify's native "All fields" view. Consumers using `?view=wines` must use the raw dataset items or `?view=overview`.

*Fixes*

- A currency marker with no amount, such as "R," on a South African page or "kr," on a Swedish one, is no longer read as a price. Those rows now return an empty price and an empty currency instead of an unusable value, and the wine is still delivered and billed as normal. Real amounts such as "R 1,234", "kr 399" and "$ 7" are unaffected.

### 2026-08-19

*Features*

- Country and wine region selector: a single dropdown now lists 491 destinations, 120 countries and 371 wine regions, instead of 66 regions. Scrape a whole country such as France, Italy or Chile in one run.
- Every destination available before this release still works: no URL was removed, and Burgundy remains the default.
- The destination, "Pages per Country or Region", ranking, and currency controls now appear together in the main input section, so all run options are visible without opening additional panels. The default remains 1 page, about 25 wines, for a fast first run, and the page limit can be increased to 50.

*Changes*

- Prices are now converted to US dollars by default. The "none, keep original prices" option has been removed from the currency selector, and a saved input that used it is read as USD. Pick any other target currency with `targetCurrency`. The original price and its detected currency are still returned on every row.

### 2026-07-02

*Features*

- Initial release: scrape Wine-Searcher region and appellation pages via a premium proxy with anti-bot handling managed automatically.
- 66-region dropdown of marquee appellations (Burgundy default), plus a `customUrl` override for any `/regions-{slug}` page not in the list.
- Extract popularity ranking, critic score, average price, and detected currency for each wine, with automatic pagination up to 50 pages per region.
- Sort/tab selector: Most Popular, Best Rated, Best Value, Most Expensive, Cheapest.
- Optional live currency conversion to 30 target ISO codes via `targetCurrency`.
- Pay-per-event pricing: `wine-result` at $0.003 per wine extracted.
