This tutorial shows how to scrape Wallapop product URLs into a clean CSV with the Wallapop Scraper by URLs template for UScraper. You will import the workflow, replace the sample product links, set the export path, run a validation batch, and handle the common issues that appear on marketplace detail pages.
Before you start
Prerequisites, scope, and Wallapop checks
You need UScraper installed as a local desktop app, a short list of Wallapop product detail URLs you are allowed to process, and a folder where the CSV file can be written. Start with two or three URLs, not a long list. Wallapop pages may show consent prompts, location prompts, login screens, verification checks, or different modules depending on the browser session.
This article is for product detail URLs, not keyword discovery. If you need to collect URLs from search pages first, use a listing workflow and then pass the product links into this URL-based tutorial. Wallapop's own help center describes product listings as seller-created pages with titles, categories, photos, prices, and shipping context, so the fields you export should be treated as marketplace listing data, not a guaranteed product catalog.
Compliance first: review Wallapop's current rules, check Wallapop robots.txt, keep pacing modest, avoid bypassing access controls, and do not collect sensitive personal data without a clear lawful basis.
Workflow anatomy
What the Wallapop scraper by URLs does
The workflow definition is simple by design: Set Window Size -> Navigate -> Wait for Page Load -> Sleep -> Wait for Element -> Inject JavaScript -> Structured Export -> Loop Continue. Navigate owns the list of product URLs. The waits give Wallapop time to render. The injected JavaScript tries to read live DOM and JSON-LD values when available. Structured Export writes the CSV row. Loop Continue moves to the next product URL.
| Block | Role in the run | What to check |
|---|---|---|
| Navigate | Opens every Wallapop product URL in the configured list | Replace all sample URLs with approved product pages. |
| Wait blocks | Let the page body and dynamic modules settle | Increase waits if prompts or slow pages create blank fields. |
| Inject JavaScript | Extracts live page data and falls back only for bundled sample IDs | Review this block when Wallapop changes its page layout. |
| Structured Export | Writes the configured columns to CSV | Confirm file name, save folder, headers, and append mode. |
| Loop Continue | Advances the multi-URL run | Keep it after export so each URL produces one row. |
The JSON export is the authoritative sample of the workflow definition. Use the article as the runbook, but use the template JSON as the source of truth for block IDs, connections, wait timing, JavaScript extraction, and output columns.
Runbook
How to scrape Wallapop product URLs to CSV
Replace the sample URLs
In Navigate, remove the bundled motorhome examples and paste the Wallapop product detail URLs you are allowed to review.
Check the browser session
Run one URL and resolve consent, login, location, or verification prompts before trusting the extracted fields.
Set the export path
In Structured Export, confirm wallapop_scraper_con_urls.csv, the save folder, headers, and append mode.
Validate before scaling
Compare the first CSV row with the open product page. Only expand the URL list after title, price, seller link, image, location, and shipping fields look right.
After the first run, sort the CSV by producto_url. One input URL should produce one row. If a product appears twice, the URL list probably contains a duplicate or a previous append-mode test wrote into the same file.
Output
What the Wallapop to CSV export includes
The bundle does not include a separate finished CSV sample. Instead, use the export shape below with the JSON workflow definition: the JSON shows exactly which fields Structured Export writes, and this table explains how to validate them.
wallapop_scraper_con_urls.csvColumn
producto
Product title from the detail page or structured product data.
Column
detalles
Condition or short detail text when Wallapop exposes it.
Column
descripción
Listing description normalized into one cell.
Column
producto_url
The product detail URL opened by Navigate.
Column
imagen_url
One or more image URLs, separated by semicolons.
Column
vendedor_url
Seller profile URL when visible to the current session.
Column
envio
Shipping or in-person sale note.
Column
precio
Displayed asking price.
Column
ubicación
Listing city or approximate location.
Column
fecha_pubilicidad
Publication or edit freshness text from the page.
| Validation check | Healthy result | Fix when it fails |
|---|---|---|
| URL coverage | Every input URL appears once in producto_url | Deduplicate inputs and clear old append-mode test files. |
| Product identity | producto, precio, and producto_url match the browser | Rerun one URL and confirm the page rendered normally. |
| Seller and shipping | vendedor_url and envio fill when visible | Check whether the current browser session hides seller or shipping modules. |
| Images | imagen_url contains one or more Wallapop image links | Add wait time or update the extractor if images load late. |
| Freshness | fecha_pubilicidad is present when Wallapop shows it | Treat it as optional if the page does not expose edit or publication text. |
Alternatives
UScraper vs Octoparse, APIs, and Python scripts
Use UScraper when you already have product URLs, want browser-visible QA, and need a local CSV without writing a custom crawler. Octoparse also publishes Wallapop templates, including a Wallapop scraper by URLs, a details scraper, and listing-page scrapers. Hosted API-style options such as Apify's Wallapop Scraper Python API or ScrapingBee's Wallapop Scraper API are better fits when your output needs to feed code, scheduled cloud jobs, or an application backend.
Python is reasonable if you need full control and can maintain breakage yourself. Public references such as wallapopy, wallapy, and open-source Wallapop scraper repositories show that code-first approaches exist, but they move selector drift, request behavior, storage, retries, and compliance review onto your team.
| Approach | Best fit | Trade-off |
|---|---|---|
| UScraper local desktop app | Analysts who need a checked CSV from known product URLs | You still need to validate live pages and maintain selectors. |
| Octoparse Wallapop templates | Teams already standardized on Octoparse workflows | Vendor runtime, pricing, and workflow model may differ from local custody needs. |
| Hosted scraper APIs | Developers feeding Wallapop data into code | Usually account-based, API-token based, and vendor-hosted. |
| Python scraper | Engineering teams that want complete control | Highest maintenance burden when Wallapop changes behavior. |
FAQ
Wallapop product scraper FAQ
Public Wallapop product pages can still be governed by Wallapop terms, robots directives, copyright, privacy law, database rights, and marketplace rules. Use modest pacing, avoid bypassing access controls, do not collect sensitive personal data, and get legal review before commercial monitoring or redistribution.
Next step
Download the Wallapop scraper by URLs template
When you are ready to run the tutorial, download the JSON from Wallapop Scraper by URLs and keep this article open for validation. For related workflows, browse all UScraper templates or the UScraper blog for more scraping tutorials and comparison guides.

