Skip to main content

Python E-Commerce Scraper 🛒

Scrape Amazon, eBay, Walmart, Home Depot and Google Shopping from a single Python module.

SerpApi

This tool uses SerpApi as a tool to parse data.

You can use provided API key that will be available after installation, however, it's purely for testing purposes to see if the tool fits your needs. If you'll be using it for your own purpose (personal or commercial), you have to use your own SerpApi key.

⚙️Installation

$ pip install ecommerce-scraper-py

Scrape Google Shopping

Example to scrape search page

from google_shopping import GoogleShoppingSearch

scraper = GoogleShoppingSearch(
    api_key='<your_serpapi_api_key>',
    query='coffee',
    domain='google.de',
    country='de',
    language='de',
    price_from=20,
    price_to=200,
    results_limit=150
)

products = scraper.get_products()
scraper.print(products)

scraper.save_to_json(products)

Example to scrape product page

from google_shopping import GoogleShoppingProduct

scraper = GoogleShoppingProduct(
    api_key='<your_serpapi_api_key>',
    product_id=14019378181107046593,
    reviews_limit=125
)

product = scraper.get_product()
scraper.print(product)

scraper.save_to_json(product)

Advanced example

from google_shopping import GoogleShoppingSearch, GoogleShoppingProduct

search_scraper = GoogleShoppingSearch(
    api_key='<your_serpapi_api_key>',
    query='Sony PlayStation 5',
    price_from=400,
    price_to=1000,
    results_limit=10,
    domain='google.de',
    country='de',
    language='de'
)

data = []

products = search_scraper.get_products()

for product in products:
    product_scraper = GoogleShoppingProduct(
        api_key='<your_serpapi_api_key>',
        product_id=product['product_id'],
        reviews_limit=15,
        domain='google.de',
        country='de',
        language='de'
    )

    product_data = product_scraper.get_product()
    data.append(product_data)

search_scraper.print(data)
search_scraper.save_to_json(data)

Scrape Walmart

Example to scrape search page

from walmart import WalmartSearch

scraper = WalmartSearch(
    api_key='<your_serpapi_api_key>',
    query='coffee starbucks',
    price_from=20,
    price_to=200,
    results_limit=150,
    # store="356"
)

products = scraper.get_products()
scraper.print(products)

scraper.save_to_json(products)

Example to scrape product page

from walmart import WalmartProduct

scraper = WalmartProduct(
    api_key='<your_serpapi_api_key>',
    product_id=520468661,
    reviews_limit=125
)

product = scraper.get_product()
scraper.print(product)

scraper.save_to_json(product)

Advanced example

from walmart import WalmartSearch, WalmartProduct

search_scraper = WalmartSearch(
    api_key='<your_serpapi_api_key>',
    query='coffee starbucks',
    price_from=20,
    price_to=200,
    results_limit=10
)

data = []

products = search_scraper.get_products()

for product in products:
    product_scraper = WalmartProduct(
        api_key='<your_serpapi_api_key>',
        product_id=product['product_id'],
        reviews_limit=15
    )

    product_data = product_scraper.get_product()
    data.append(product_data)

search_scraper.print(data)
search_scraper.save_to_json(data)

Scrape Home Depot

Example to scrape search page

from home_depot import HomeDepotSearch

scraper = HomeDepotSearch(
    api_key='<your_serpapi_api_key>',
    query='chair',
    price_from=20,
    price_to=200,
    results_limit=150,
    # zip_code='04401'    # zip code must be in the format '12345' or '12345-6789'
)

products = scraper.get_products()
scraper.print(products)

scraper.save_to_json(products)

Example to scrape product page

from home_depot import HomeDepotProduct

scraper = HomeDepotProduct(
    api_key='<your_serpapi_api_key>',
    product_id=202054749
)

product = scraper.get_product()
scraper.print(product)

scraper.save_to_json(product)

Advanced example

from home_depot import HomeDepotSearch, HomeDepotProduct

search_scraper = HomeDepotSearch(
    api_key='<your_serpapi_api_key>',
    query='chair',
    price_from=20,
    price_to=200,
    results_limit=10,
    zip_code='04401'    # zip code must be in the format '12345' or '12345-6789'
)

data = []

products = search_scraper.get_products()

for product in products:
    product_scraper = HomeDepotProduct(
        api_key='<your_serpapi_api_key>',
        product_id=product['product_id']
    )

    product_data = product_scraper.get_product()
    data.append(product_data)

search_scraper.print(data)
search_scraper.save_to_json(data)

Scrape Amazon

Example to scrape search page

from amazon import AmazonSearch

scraper = AmazonSearch(
    query='coffee',
    results_limit=125,
    price_from=20,
    price_to=50,
    currency='USD',
    language='en_US',
    customer_reviews_rating=4,
    multiplier=1
)

products = scraper.get_products()
scraper.print(products)

scraper.save_to_json(products)

Example to scrape product page

from amazon import AmazonProduct

scraper = AmazonProduct(
    link='https://www.amazon.com/McCafe-Premium-Roast-Decaf-Coffee/dp/B07GCNDL91/ref=sr_1_1?currency=USD&keywords=coffee&qid=1684849762&refinements=p_36%3A2000-5000%2Cp_72%3A1248897011&rnid=1248895011&s=grocery&sr=1-1&th=1',
    reviews_limit=35,
    multiplier=1,
    currency='USD',
    language='en_US'
)

product = scraper.get_product()
scraper.print(product)

scraper.save_to_json(product)

Advanced example

from amazon import AmazonSearch, AmazonProduct

search_scraper = AmazonSearch(
    query='coffee',
    results_limit=5,
    price_from=20,
    price_to=50,
    currency='USD',
    language='en_US',
    customer_reviews_rating=4,
    multiplier=1
)

data = []

products = search_scraper.get_products()

for product in products:
    product_scraper = AmazonProduct(
        link=product['link'],
        reviews_limit=15,
        multiplier=1,
        currency='USD',
        language='en_US'
    )

    product_data = product_scraper.get_product()
    data.append(product_data)

search_scraper.print(data)
search_scraper.save_to_json(data)

Scrape eBay

Example to scrape search page

from ebay import EbaySearch

scraper = EbaySearch(
    api_key='<your_serpapi_api_key>',
    query='coffee starbucks',
    price_from=20,
    price_to=200,
    results_limit=250,
    domain='ebay.com'
)

products = scraper.get_products()
scraper.print(products)

scraper.save_to_json(products)

Example to scrape product page

from ebay import EbayProduct

scraper = EbayProduct(
    link='https://www.ebay.com/itm/2-Bags-STARBUCKS-French-Roast-DARK-Whole-Bean-100-Arabica-Coffee-40oz-ea-09-23/144356021636',
    reviews_limit=125,
    multiplier=1
)

product = scraper.get_product()
scraper.print(product)

scraper.save_to_json(product)

Advanced example

from ebay import EbaySearch, EbayProduct

search_scraper = EbaySearch(
    api_key='<your_serpapi_api_key>',
    query='coffee',
    results_limit=5,
    domain='ebay.com'
)

data = []

products = search_scraper.get_products()

for product in products:
    product_scraper = EbayProduct(
        link=product['link'],
        reviews_limit=15,
        multiplier=1
    )

    product_data = product_scraper.get_product()
    data.append(product_data)

search_scraper.print(data)
search_scraper.save_to_json(data)

✍Contributing

Feel free to open bug issue, something isn't working, what feature to add, or anything else.

Metadata

Release files for ecommerce-scraper-py 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ecommerce-scraper-py 0.1.1
File Size Uploaded
ecommerce-scraper-py-0.1.1.tar.gz 131.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for ecommerce-scraper-py 0.1.1
File Interpreter ABI Platform
ecommerce_scraper_py-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 268.6 kB

Release files / ecommerce-scraper-py-0.1.1.tar.gz

Download URL ecommerce-scraper-py-0.1.1.tar.gz
Size 131.8 kB
Tags Source
SHA-256 checksum
How to use checksums
484ce7583a3f90dd192042117cf84585bef98f48e2080caa2858568826f3d884
BLAKE2b-256 checksum
How to use checksums
2230a50602303cde2b4abde1625b15da1312493c549d34f4801f0f24e98d15d5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.10.8

Release files / ecommerce_scraper_py-0.1.1-py3-none-any.whl

Download URL ecommerce_scraper_py-0.1.1-py3-none-any.whl
Size 136.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
92a4e8ba02a1b96634f1aca82820e60190242d00ad9373ee3fdff8e63003016f
BLAKE2b-256 checksum
How to use checksums
cedc7a9b6b072420c811fab0251565d79fe48435b0ab73497c085491e7961be3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.10.8

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page