Python3 API for retrieving information from PcPartPicker
What can this API do?
Currently this library contains these features:
-
Select what region you want to use ("uk", "ca", etc.)
-
The
productLists
class - for interacting with pages that are lists of products, as seen under the "browse by individual parts" tab on the PCPartPicker website (such as products/cpu-cooler). All product lists are supported except the ones under theSOFTWARE
catergory, although those may be supported in the future
pip install PCPartPicker_API
See the PyPi page here
A quick demonstration of what this API can do
# Import pcpartpicker
# Imported here as pcpp to makes lines a little shorter
from PCPartPicker_API import pcpartpicker as pcpp
# Print the total amount of pages for CPUs
print("Total CPU pages:", pcpp.productLists.totalPages("cpu"))
# Pull info from page 1 of CPUs
cpu_info = pcpp.productLists.getProductList("cpu", 1)
# Print the names and prices of all the CPUs on the page
for cpu in cpu_info:
print(cpu["name"], ":", cpu["price"])
# Change the region to UK (the default is US)
pcpp.setRegion("uk")
print("\nRegion changed to UK")
# Pull info from all CPU pages (this may take a minute)
cpu_info_uk = pcpp.productLists.getProductList("cpu")
# Print the names and prices of all the CPUs on all pages
# The prices will now be in GBP (£) instead of USD ($)
for cpu in cpu_info_uk:
print(cpu["name"], ":", cpu["price"])
To start using the API, import pcpartpicker
from PCPartPicker_API
A list of partType
s and their dictionary keys are available in _productsData
pcpartpicker
contains these (public) functions:
Function name | Paramaters | Description |
---|---|---|
setRegion |
region |
The region of PCPartPicker that this API uses. region must be one of: "au", "be", "ca", "de", "es", "fr", "in", "ie", "it", "nz", "uk", "us" , case insesetive. The defualt is for this library is "us" . As far as I can tell this only changes the currency |
productLists.getList |
partType, pageNum=0 |
This function returns a list of dictionaries. Each partType will have different dictionary keys. To see what keys exist for each partType , you can look them up in _productsData. Every dictionary will always contain the keys name , price , ratings and id (although they may not always have a value). pageNum is set to 0 by default. 0 means it will scrape all pages and gather all the info it can. If you only want to get information from, for example, page 2 of the cpu results, you would set pageNum to 2 |
productLists.totalPages |
partType |
This function simply returns the amount of pages of results there are for a particular partType |
- Support the
SOFTWARE
catergory inpcpartpicker.productLists