Python E-Commerce Scraper 🛒
Scrape Amazon, eBay, Walmart, Home Depot and Google Shopping from a single Python module.
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)
| File | Size | Uploaded | |
|---|---|---|---|
| ecommerce-scraper-py-0.1.1.tar.gz | 131.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|