API Scraper Needed Open

Job ID: 38760334

Budget: €250 – €750 EUR

I'm looking for a proficient web scraper to collect data from two e-groceries.

Key Requirements:
Create an executable scraper in Python that can extract the SKU (product) list from the following Indonesian online grocery mobile apps:
- Alfagift (https://play.google.com/store/apps/details?id=com.alfamart.alfagift&hl=en&pli=1)
- Klikindomaret (https://play.google.com/store/apps/details?id=com.indomaret.klikindomaret&hl=en)

The scraper must be IP-block tolerant, meaning if the scraper gets blocked, execution can be continued from the point where the last row of data was successfully extracted.
Scraper Functions

Function: list_category_tree
Input: competitor_name (alfagift | klikindomaret), existing_csv (optional - CSV file to append to for continuing execution, if the scraper stopped or got IP blocked)
Output: CSV of category tree with the following columns (scrape_date, URL, category name, position index, parent_category (null if top level))

Function: extract_sku
Input: competitor_name, location (latitude and longitude, mandatory), category (optional - extract SKUs from all categories if null), sub_category (optional - extract all SKUs from all subcategories if null), existing_csv (optional - CSV file to append to for continuing execution, if the scraper stopped or got IP blocked)
Output: CSV of SKUs with the following columns (category, sub_category, brand, sku_name, description, competitor_name, datetime, location, url, nsp, psp, stock_count (if available), popularity_index (if available), weight (if available). If one SKU is contained in more than one category/sub_category, present the same SKU in different rows.

Unit tests
The scraper must include unit tests that cover main and error test cases, including optional parameters

Submission
The following must be submitted:
- Scraper code and unit tests
- README file for running and deploying the scraper
- Output of all SKUs from the 2 online grocery apps specified above

Project Acceptance Testing
The scraper output will be manually verified within 24 hours of submission and SKU list must be 95% accurate. The SKU list is the most important aspect of the scraper output.
Variations in other data for each SKU like stock count, popularity index and prices may vary and higher levels of discrepancy (~25%) during manual verification is acceptable. (edited)


Ideal Skills:
- Proficient in web scraping tools and techniques
- Experience in data extraction and processing
- Able to deliver data in a well-structured CSV format

Please provide examples of previous similar projects you've completed.