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
productListsclass - 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 theSOFTWAREcatergory, 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 partTypes 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
SOFTWAREcatergory inpcpartpicker.productLists