Skip to main content

Scrape ecommerce websites such as Amazon, eBay, Walmart, Home Depot, Google Shopping from a single module in Python🐍

Project description

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ecommerce-scraper-py-0.1.1.tar.gz (131.8 kB view details)

Uploaded Source

Built Distribution

ecommerce_scraper_py-0.1.1-py3-none-any.whl (136.8 kB view details)

Uploaded Python 3

File details

Details for the file ecommerce-scraper-py-0.1.1.tar.gz.

File metadata

  • Download URL: ecommerce-scraper-py-0.1.1.tar.gz
  • Upload date:
  • Size: 131.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.8

File hashes

Hashes for ecommerce-scraper-py-0.1.1.tar.gz
Algorithm Hash digest
SHA256 484ce7583a3f90dd192042117cf84585bef98f48e2080caa2858568826f3d884
MD5 e4feda204978c58f394bbb97856968b8
BLAKE2b-256 2230a50602303cde2b4abde1625b15da1312493c549d34f4801f0f24e98d15d5

See more details on using hashes here.

File details

Details for the file ecommerce_scraper_py-0.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for ecommerce_scraper_py-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 92a4e8ba02a1b96634f1aca82820e60190242d00ad9373ee3fdff8e63003016f
MD5 5e42e4a8c23b7d2b79257e3f50ed19ae
BLAKE2b-256 cedc7a9b6b072420c811fab0251565d79fe48435b0ab73497c085491e7961be3

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page