PHP Developer Needed – Website Product Scraper

via Freelancer ·

Budget / Salary$30–250
TypeFreelance project
LocationRemote
Posted1 hour ago
Project Overview

We are looking for an experienced PHP developer to create a website scraper for Botanico.ca.

The scraper must log in using authorized account credentials, navigate through all product categories, collect product information, download product images, and organize the data into structured product and options tables.

Important: Login credentials will be provided privately to the selected developer and must not be included in any public job posting.
Required Functionality

The scraper should:

Log in to the website using the provided credentials.

Navigate through all available product categories.

Scrape every product and its available details.

Identify products that have options, such as size or color.

Download up to five images per product.

Save images using the SKU-based naming format.

Store the scraped information in a structured format, such as MySQL, CSV, or another agreed format.

Avoid creating duplicate products when the scraper is run again.

Handle pagination and products spread across multiple category pages.

Provide clear error handling and logging for failed products or images.

Product Table

The main product table should contain the following fields:
Field Description
category Product category or category path
title Product title
price Product price
info Additional product information, if available
sku Product SKU
size Product size, if applicable
color Product color, if applicable
stock_qty Available stock quantity, where displayed
image1 Filename or path of the first product image
image2 Filename or path of the second product image
image3 Filename or path of the third product image
image4 Filename or path of the fourth product image
image5 Filename or path of the fifth product image

If no additional product information is available, the info field should remain blank.

For example, if a product such as SKU 06-8017 contains the text:

SOLD BY CASE QTY ONLY

That text should be saved in the info field.
Image Requirements

Product images must be downloaded into a designated directory.

Images should be named according to the following format:

text
SKU_1.jpg
SKU_2.jpg
SKU_3.jpg
SKU_4.jpg
SKU_5.jpg

For example:

text
06-8017_1.jpg
06-8017_2.jpg

The scraper should download a maximum of five images per listing. If a product has fewer than five images, only the available images should be saved.

The system should support common image formats, including JPG, JPEG, PNG, and WebP, where applicable.
Product Options Table

Some products have selectable options, such as size or color. These options should be stored separately and linked to the parent product.

The options table should contain:
Field Description
parent_sku SKU of the main or parent product
option_type Option category, such as size or color
option_value Specific option value, such as Small, Medium, Large, or Red

Example:
parent_sku option_type option_value
03-140 size Small
03-140 size Medium
03-140 size Large

The scraper should support products with multiple option types, such as both size and color.
Expected Deliverables

The selected developer will be responsible for providing:

Fully functional PHP scraping script.

Login and authentication functionality.

Complete category and product scraping.

Product and options data tables or export files.

Downloaded and properly named product images.

Duplicate prevention or update functionality.

Error logging for failed products, images, or pages.

Configuration instructions.

Requirements for running the scraper on a server or local computer.

Brief documentation explaining how to run the scraper and update its settings.

Developer Requirements

Applicants should have experience with:

PHP.

Web scraping and HTML parsing.

Login-protected websites.

JavaScript-rendered product pages, if applicable.

MySQL and/or CSV data exports.

Downloading and organizing remote images.

Handling pagination and product variations.

Session cookies, authentication, and request headers.

Writing reliable scrapers that can be rerun without creating duplicate records.

Experience with e-commerce websites, product catalogs, inventory data, or marketplace integrations would be an advantage.

Please Note if you bid changes or you request for a different amount I will not hire you and you will not be eligible for this project.
php javascript data processing web scraping mysql web development
Apply on Freelancer →

Project sourced from Freelancer.com. Applications happen directly on the original platform — we never collect your data.