Skip to main content

python-ote

Electricity prices scraper for OTE (ote-cr.cz)

Install

pip install python-ote

In order to parse numbers corrently (Czech notation - e.g. 1,000,000) this package needs the cs_CZ.UTF-8 system locale. If the OS doesn't have it by default the following commands can be used generate it:

echo "cs_CZ.UTF-8 UTF-8" >> /etc/locale.gen
locale-gen

Usage

from ote import Ote
from dateutil import parser

# Create client
ote = Ote()

Use getDayMarketPrices(date_from, date_to) method to get electricity prices for the given time range. It accepts a date_from and optionally a date_to, both of which have to be a datetime.date object. If date_to is not specified the method returns data to today.

Examples:

# Get water consumption data from the specified date to now.
date_from = parser.parse('2020-08-01').date()
deferred_data = ote.getDayMarketPrices(date_from);

# Get water consumption data for a date interval
date_from = parser.parse('2020-08-01').date()
date_to = parser.parse('2020-08-11').date()
deferred_data = ote.getDayMarketPrices(date_from, date_to);

# Get water consumption data for a specific date (just 1 day)
date = parser.parse('2020-08-01').date()
deferred_data = ote.getDayMarketPrices(date, date);

You may call getDayMarketPrices multiple times with different parameters. It returns a twisted.internet.defer.Deferred object that can be used to retrieve the price data in the future using a callback you need to provide.

def process_prices(prices)
  print(prices)

deferred_data.addCallback(process_prices)

If you have multiple Deferreds from multiple calls to getDayMarketPrices you can use Ote.join() to get a Deferred that will be resolved after all crawlers are finished.

The last callback should stop the reactor so it's shut down cleanly. Reactor should be stopped after all crawlers are done so the join() method comes in handy. Note that the reactor cannot be restarted so make sure this is the last thing you do:

from twisted.internet import reactor

d = ote.join()
d.addBoth(lambda _: reactor.stop())

The last thing you need to do is run the reactor. The script will block until the crawling is finished and all configured callbacks executed.

reactor.run(installSignalHandlers=False)

This might look a bit daunting so please see test.py for a complete example.

Keep in mind the library is using Scrapy internally which means it is scraping the OTE website. If OTE comes to think you are abusing the website they may block your IP address.

License

See LICENSE.

Release files for python-ote 0.2.7

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for python-ote 0.2.7
File Size Uploaded
python_ote-0.2.7.tar.gz 5.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for python-ote 0.2.7
File Interpreter ABI Platform
python_ote-0.2.7-py3-none-any.whl Python 3 none any Details

Total release size: 13.2 kB

Release files / python_ote-0.2.7.tar.gz

Download URL python_ote-0.2.7.tar.gz
Size 5.7 kB
Tags Source
SHA-256 checksum
How to use checksums
7d12de0fbdeca358e003be913e4db41cf6e67f9fa71d097a28987b5297db6c09
BLAKE2b-256 checksum
How to use checksums
a205b5e8a87bb3ef8366c4b96af1a36f10c5f33555b79ee895a9d2665ae55a0e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.9.5

Release files / python_ote-0.2.7-py3-none-any.whl

Download URL python_ote-0.2.7-py3-none-any.whl
Size 7.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
1a0d0a7be0057c74d1366e6fec978692c1f8e9acd23ebc4f5f4474ccdefe59b2
BLAKE2b-256 checksum
How to use checksums
b18ba048557626d834168ac77a0fd275a10a981112be90b1209b685b2fccc928
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.9.5

Release history Release notifications | RSS feed

This release

0.2.7 This release

2 release files

0.2.5

2 release files

0.2.4

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.1

2 release files

0.1.0

2 release files

0.0.3

2 release files

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page