A simple scrapper that uses coin360.com and coinmarketcap.com apis to populate an instant local database
Project description
Python : Simple Crypto currencies scrapper
This is a simple module that retrieve instant crypto currencies values in BTC and USD from coin360.com and coinmarketcap apis
How to use
First install the package
pip install cryptocurrencies_scraper
Basic usage
from cryptocurrencies_scraper.CurrencyService import Manager
manager = Manager() # Create a new instance of the Manager
manager.update() # Ask the manager to update all currencies values
manager.all_currencies() # returns a dict that contain the currency name and symbol as key and currency information as a list
manager.get_curency('btc') # return the list of currency values retrived for bitcoin using symbol
manager.get_curency('bitcoin') # return the list of currency values retrived for bitcoin using name
Add your own scraper
A scraper should extends the CurrentPriceInterface
.
Here is a basic scheme for a new scraper
class MySourceForCurrencies(CurrentPriceInterface):
instance = None
URL = 'https://api.mysource.com/v1/ticker/?limit=3000'
NAME = "mysource.com"
@classmethod
def get_instance(cls) -> 'CurrenciesFromCoinMarketCap':
if cls.instance is None:
cls.instance = MySourceForCurrencies()
return cls.instance
def __init__(self):
super().__init__()
def update_currency_list(self):
self.process_data(requests.get(self.URL).json())
def process_data(self, json_data: json) -> None:
# Manipulate the the json to be Currency "parsable"
c = Currency.parse_json(json_data, self.NAME)
#When parsed, add it to the index
NameIndexes.get_instance().add_to_index(c)
return None
In order for your scraper to be working you need to add it to the manager
from cryptocurrencies_scraper.CurrencyService import Manager
manager = Manager()
manager.add_source(MySourceForCurrencies.get_instance())
# you can also remove a source
manager.remove_source(MySourceForCurrencies.NAME)
Then on each manager.update()
call your scraper will be called and currencies added to the Index
NameIndex
This class is used internally to index all currencies. When a new currency is added, it will be grouped by the symbol and the name (symbol upper, name lower case)
The only useful method is NameIndexes.get_instance().add_to_index(currency)
. On each update, it get completlly cleared
from all old values.
Currency
This is the object that represent one currency here is the structure
{
"symbol" : "BTC",
"name" : "Bitcoin",
"valueUSD" : 5513,
"valueBTC": 1,
"lastUpdate" : 1566531513813,
"source" : "coin360.com",
"changes" : {
"7d": -1,
"24h": -5,
"1h": -10
}
}
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for cryptocurrencies_scraper-0.0.2.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 40eecb71b05c6fd00e931fe3223d49cf05a9b61d4e751dc7804aae8802cf8540 |
|
MD5 | cc9f0b32977954c32eae4b68b584aab2 |
|
BLAKE2b-256 | 16624ba4cf210dc457538d64251486fe4b16da6deade6697c3261b0b1c48cc92 |
Hashes for cryptocurrencies_scraper-0.0.2-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 09b59e74a87c1ed418a5a96489b02892f32f2b6cee7d7a433406833f0c2dce49 |
|
MD5 | d3f9781cf1f7f868fd4af9c48b08c404 |
|
BLAKE2b-256 | 81e7d6ffc670d76cca0fad9bfb48fdb4244e5a494c85e2c8d9761aa08b377694 |