Skip to main content

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

Project description

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

Project details


Download files

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

Filename, size & hash SHA256 hash help File type Python version Upload date
PCPartPicker_API-0.0.9-py3-none-any.whl (6.1 kB) Copy SHA256 hash SHA256 Wheel py3
PCPartPicker_API-0.0.9.tar.gz (5.6 kB) Copy SHA256 hash SHA256 Source None

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page