Skip to content

pdswift/PCPartPicker-API

 
 

Repository files navigation

PCPartPicker-API

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 the SOFTWARE catergory, although those may be supported in the future

Installation

pip install PCPartPicker_API

See the PyPi page here

Quickstart

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"])

Documentation

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

ToDo

  • Support the SOFTWARE catergory in pcpartpicker.productLists

About

An unofficial API to access & scrape data from pcpartpicker.com

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 94.9%
  • Batchfile 5.1%