Automated Car Price Scraper
Budget: $30 – $250 USD
1. Overview
I need a Python script that runs automatically once a day via GitHub Actions, extracting the prices of every version of the new-car models for nine brands (Honda, Ford, Kia, Peugeot, Jeep, Fiat, Ram, Omoda, Jaecoo) offered by three Chilean dealerships (Bruno Fritsch, Salazar Israel and Astara).
The scraper must go two levels deep — brand page → models → versions — and capture the four price points shown for each version.
2. Seed URLs
Dealership Brands covered
Bruno Fritsch Jeep, Fiat, Ram, Peugeot, Omoda‑Jaecoo
https://www.brunofritsch.cl/jeep
https://www.brunofritsch.cl/fiat
https://www.brunofritsch.cl/ram
https://www.brunofritsch.cl/peugeot
https://www.brunofritsch.cl/omoda-jaecoo
Salazar Israel Fiat, Ford, Honda, Jeep, Kia, Peugeot, Ram
https://www.salazarisrael.cl/vehiculos?marca=fiat
https://www.salazarisrael.cl/vehiculos?marca=ford
https://www.salazarisrael.cl/vehiculos?marca=honda
https://www.salazarisrael.cl/vehiculos?marca=jeep
https://www.salazarisrael.cl/vehiculos?marca=kia
https://www.salazarisrael.cl/vehiculos?marca=peugeot
https://www.salazarisrael.cl/vehiculos?marca=ram
Astara Retail Jeep, Ram, Fiat
https://astararetail.cl/jeep/
https://astararetail.cl/ram/
https://astararetail.cl/fiat/
Each seed page lists all models for that brand; some pages are paginated (e.g. Salazar Israel).
3. Data to capture (per version)
Marca (Brand)
Modelo (Model)
Versión (Trim / Version)
Page URL where the price was scraped
Precio de lista (List Price)
Precio con compra inteligente (“smart financing” price)
Precio con crédito convencional (“standard loan” price)
Precio con todo medio de pago (“all-payment-methods” price)
Execution date (timestamp)
Note: The Spanish price labels (Precio de lista, Precio con compra inteligente, etc.) must be kept exactly as shown on the websites; the English phrases in parentheses are reference only.
4. Technical flow
Open each seed URL.
Enumerate all models (handling pagination where present).
Open each model and enumerate every version.
Bruno Fritsch: the four prices are visible in the “Precio” tab.
Salazar Israel: click the "i" icon to open a modal and obtain Precio de lista; the other three prices are on the card.
Write the data to a CSV named YYYY-MM-DD_precios.csv.
Upload the daily CSV to a supplied Google Drive folder.
Send an e-mail summarising success/failure after each run.
5. Technical requirements
Language: Python 3.x
Libraries: Selenium or Playwright (your choice) plus BeautifulSoup/lxml/pandas.
Headless: must run in GitHub Actions.
Proxies: none – script must work without proxies.
Max run time: ≤ 10 min.
Robustness:
Handle pagination.
Reasonable retries and timeouts.
If a price is missing, record NA and log.
Code quality: PEP-8, clear inline comments, README in English.
6. Deliverables
Complete Python script + requirements.txt
GitHub Actions workflow (cron @daily)
English README with installation/maintenance instructions
Inline documentation
First successful scrape within 10 days
7. Budget & Timeline
Fixed price: USD 150, broken down as:
USD 40 for the Salazar Israel scraper
USD 40 for the Bruno Fritsch scraper
USD 40 for the Astara scraper
USD 30 for consolidating the final script and configuring the GitHub Actions workflow
Deadline: 10 days after contract start
Bonus possible for early, error-free delivery
8. Proposal evaluation
Proven portfolio of similar JS-heavy scraping (Selenium/Playwright)
Competitive pricing
Clear work plan and milestones
Rating ≥ 4.9 and positive feedback on related projects
9. How to apply
Links to similar scraping projects
Short technical outline (libraries, pagination/modal handling)
Confirmation that you can meet the budget and deadline
Any questions you may have
I need a Python script that runs automatically once a day via GitHub Actions, extracting the prices of every version of the new-car models for nine brands (Honda, Ford, Kia, Peugeot, Jeep, Fiat, Ram, Omoda, Jaecoo) offered by three Chilean dealerships (Bruno Fritsch, Salazar Israel and Astara).
The scraper must go two levels deep — brand page → models → versions — and capture the four price points shown for each version.
2. Seed URLs
Dealership Brands covered
Bruno Fritsch Jeep, Fiat, Ram, Peugeot, Omoda‑Jaecoo
https://www.brunofritsch.cl/jeep
https://www.brunofritsch.cl/fiat
https://www.brunofritsch.cl/ram
https://www.brunofritsch.cl/peugeot
https://www.brunofritsch.cl/omoda-jaecoo
Salazar Israel Fiat, Ford, Honda, Jeep, Kia, Peugeot, Ram
https://www.salazarisrael.cl/vehiculos?marca=fiat
https://www.salazarisrael.cl/vehiculos?marca=ford
https://www.salazarisrael.cl/vehiculos?marca=honda
https://www.salazarisrael.cl/vehiculos?marca=jeep
https://www.salazarisrael.cl/vehiculos?marca=kia
https://www.salazarisrael.cl/vehiculos?marca=peugeot
https://www.salazarisrael.cl/vehiculos?marca=ram
Astara Retail Jeep, Ram, Fiat
https://astararetail.cl/jeep/
https://astararetail.cl/ram/
https://astararetail.cl/fiat/
Each seed page lists all models for that brand; some pages are paginated (e.g. Salazar Israel).
3. Data to capture (per version)
Marca (Brand)
Modelo (Model)
Versión (Trim / Version)
Page URL where the price was scraped
Precio de lista (List Price)
Precio con compra inteligente (“smart financing” price)
Precio con crédito convencional (“standard loan” price)
Precio con todo medio de pago (“all-payment-methods” price)
Execution date (timestamp)
Note: The Spanish price labels (Precio de lista, Precio con compra inteligente, etc.) must be kept exactly as shown on the websites; the English phrases in parentheses are reference only.
4. Technical flow
Open each seed URL.
Enumerate all models (handling pagination where present).
Open each model and enumerate every version.
Bruno Fritsch: the four prices are visible in the “Precio” tab.
Salazar Israel: click the "i" icon to open a modal and obtain Precio de lista; the other three prices are on the card.
Write the data to a CSV named YYYY-MM-DD_precios.csv.
Upload the daily CSV to a supplied Google Drive folder.
Send an e-mail summarising success/failure after each run.
5. Technical requirements
Language: Python 3.x
Libraries: Selenium or Playwright (your choice) plus BeautifulSoup/lxml/pandas.
Headless: must run in GitHub Actions.
Proxies: none – script must work without proxies.
Max run time: ≤ 10 min.
Robustness:
Handle pagination.
Reasonable retries and timeouts.
If a price is missing, record NA and log.
Code quality: PEP-8, clear inline comments, README in English.
6. Deliverables
Complete Python script + requirements.txt
GitHub Actions workflow (cron @daily)
English README with installation/maintenance instructions
Inline documentation
First successful scrape within 10 days
7. Budget & Timeline
Fixed price: USD 150, broken down as:
USD 40 for the Salazar Israel scraper
USD 40 for the Bruno Fritsch scraper
USD 40 for the Astara scraper
USD 30 for consolidating the final script and configuring the GitHub Actions workflow
Deadline: 10 days after contract start
Bonus possible for early, error-free delivery
8. Proposal evaluation
Proven portfolio of similar JS-heavy scraping (Selenium/Playwright)
Competitive pricing
Clear work plan and milestones
Rating ≥ 4.9 and positive feedback on related projects
9. How to apply
Links to similar scraping projects
Short technical outline (libraries, pagination/modal handling)
Confirmation that you can meet the budget and deadline
Any questions you may have