Tauron pobieranie danych o zużyciu energii

0

Witam,
Od razu uprzedzam że jestem totalnym lamą w temacie python'a ale może mi pomożecie.
Mianowicie mam skrypt , który niby miał pobierać dane o zużyciu energii. Ale nie działa.
Oto ten skrypt:

#!/usr/bin/env python

import requests
from requests import adapters
import ssl
from urllib3 import poolmanager
import datetime

#Add login details & meter ID here:
username = 'TAURON_USERNAME'
password = 'TAURON_PASSWORD'
meter_id = TAURON_ENERGY_METER_ID

payload = { 
                'username': username,
                'password': password ,
                'service': 'https://elicznik.tauron-dystrybucja.pl'
}

url = 'https://logowanie.tauron-dystrybucja.pl/login'
charturl = 'https://elicznik.tauron-dystrybucja.pl/index/charts'
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0'} 

class TLSAdapter(adapters.HTTPAdapter):

    def init_poolmanager(self, connections, maxsize, block=False):
        """Create and initialize the urllib3 PoolManager."""
        ctx = ssl.create_default_context()
        ctx.set_ciphers('DEFAULT@SECLEVEL=1')
        self.poolmanager = poolmanager.PoolManager(
                num_pools=connections,
                maxsize=maxsize,
                block=block,
                ssl_version=ssl.PROTOCOL_TLS,
                ssl_context=ctx)

session = requests.session()
session.mount('https://', TLSAdapter())

p = session.request("POST", url, data=payload, headers=headers)

chart = {
	        #change timedelta to get data from another days (1 for yesterday)
                "dane[chartDay]": (datetime.datetime.now() - datetime.timedelta(1)).strftime('%d.%m.%Y'),
                "dane[paramType]": "day",
                "dane[smartNr]": meter_id,
	        #comment if don't want generated energy data in JSON output:
                "dane[checkOZE]": "on"
}

r = session.request("POST", charturl, data=chart, headers=headers)
print(r.text)

#Optionally write JSON to file
#with open('file.json', 'wb') as f:
#    f.write(r.content)

Problem jest taki, że on nie działa jakby nie potrafił się zalogować bo cały czas dostaję kod źródłowy strony do logowania.

Znalazłem takie coś szperając po internecie że może to być problem logowania bo to korzysta ze skryptu js

<a href="javascript:runs()" data-js="login-btn" title="Zaloguj się" class="log-in__button button button-pink">Zaloguj się</a>

W przeglądarce jak klikam zaloguj to dostaję takie żądanie:

A po zalogowaniu dostaję taki ticket:

https://elicznik.tauron-dystrybucja.pl/?ticket=ST-7bb4dc32bb1c9b35a6ed32e4592a2

Może znajdzie się dobra dusza która mogłaby mi pomóc ??

2

Za pewne zle przesylasz payload albo brakuje headerow

0

@Radosław Głębicki: w tym jest problem że dostaję zrzut strony do logowania w json jak pisałem...
file.zip

2

https://elicznik.tauron-dystrybucja.pl/?ticket=ST-7bb4dc32bb1c9b35a6ed32e4592a2 to wygląda jak jakieś logowanie przez CAS, musisz uderzyć w ten URL i dostaniesz z niego Cookie z sesją. Czyli:

  1. Wysyłasz request do /login
  2. Dostaniesz z tego URL z ticketem
  3. Idziesz na ten URL z ticketem i serwer w odpowiedzi zwraca Set-Cookie, ty sobie je wyciągasz i wysyłasz z każdym requestem
0

@Shalom: chyba działa ;)

{"name":{"chart":"Pob\u00f3r 02.02.2021","OZE":"Generacja 02.02.2021"},"dane":{"chart":{"1":{"EC":"0.332","Date":"2021-02-02","Hour":"1","Status":"0","Extra":"N","Zone":"1","ZoneName":"Ca\u0142a doba","Taryfa":"G11"},"2":{"EC":"0.277","Date":"2021-02-02","Hour":"2","Status":"0","Extra":"N","Zone":"1","ZoneName":"Ca\u0142a doba","Taryfa":"G11"},"3":{"EC":"0.306","Date":"2021-02-02","Hour":"3","Status":"0","Extra":"N","Zone":"1","ZoneName":"Ca\u0142a doba","Taryfa":"G11"},"4":{"EC":"0.268","Date":"2021-02-02","Hour":"4","Status":"0","Extra":"N","Zone":"1","ZoneName":"Ca\u0142a doba","Taryfa":"G11"},"5":{"EC":"0.224","Date":"2021-02-02","Hour":"5","Status":"0","Extra":"N","Zone":"1","ZoneName":"Ca\u0142a doba","Taryfa":"G11"},"6":{"EC":"0.258","Date":"2021-02-02","Hour":"6","Status":"0","Extra":"N","Zone":"1","ZoneName":"Ca\u0142a doba","Taryfa":"G11"},"7":{"EC":"0.21","Date":"2021-02-02","Hour":"7","Status":"0","Extra":"N","Zone":"1","ZoneName":"Ca\u0142a doba","Taryfa":"G11"},"8":{"EC":"0.277","Date":"2021-02-02","Hour":"8","Status":"0","Extra":"N","Zone":"1","ZoneName":"Ca\u0142a doba","Taryfa":"G11"},"9":{"EC":"0.042","Date":"2021-02-02","Hour":"9","Status":"0","Extra":"N","Zone":"1","ZoneName":"Ca\u0142a doba","Taryfa":"G11"},"10":{"EC":"0.009","Date":"2021-02-02","Hour":"10","Status":"0","Extra":"N","Zone":"1","ZoneName":"Ca\u0142a doba","Taryfa":"G11"},"11":{"EC":"0.004","Date":"2021-02-02","Hour":"11","Status":"0","Extra":"N","Zone":"1","ZoneName":"Ca\u0142a doba","Taryfa":"G11"},"12":{"EC":"0.035","Date":"2021-02-02","Hour":"12","Status":"0","Extra":"N","Zone":"1","ZoneName":"Ca\u0142a doba","Taryfa":"G11"},"13":{"EC":"0.822","Date":"2021-02-02","Hour":"13","Status":"0","Extra":"N","Zone":"1","ZoneName":"Ca\u0142a doba","Taryfa":"G11"},"14":{"EC":"0.157","Date":"2021-02-02","Hour":"14","Status":"0","Extra":"N","Zone":"1","ZoneName":"Ca\u0142a doba","Taryfa":"G11"},"15":{"EC":"0.076","Date":"2021-02-02","Hour":"15","Status":"0","Extra":"N","Zone":"1","ZoneName":"Ca\u0142a doba","Taryfa":"G11"},"16":{"EC":"0.791","Date":"2021-02-02","Hour":"16","Status":"0","Extra":"N","Zone":"1","ZoneName":"Ca\u0142a doba","Taryfa":"G11"},"17":{"EC":"0.88","Date":"2021-02-02","Hour":"17","Status":"0","Extra":"N","Zone":"1","ZoneName":"Ca\u0142a doba","Taryfa":"G11"},"18":{"EC":"0.515","Date":"2021-02-02","Hour":"18","Status":"0","Extra":"N","Zone":"1","ZoneName":"Ca\u0142a doba","Taryfa":"G11"},"19":{"EC":"0.603","Date":"2021-02-02","Hour":"19","Status":"0","Extra":"N","Zone":"1","ZoneName":"Ca\u0142a doba","Taryfa":"G11"},"20":{"EC":"0.894","Date":"2021-02-02","Hour":"20","Status":"0","Extra":"N","Zone":"1","ZoneName":"Ca\u0142a doba","Taryfa":"G11"},"21":{"EC":"2.798","Date":"2021-02-02","Hour":"21","Status":"0","Extra":"N","Zone":"1","ZoneName":"Ca\u0142a doba","Taryfa":"G11"},"22":{"EC":"1.699","Date":"2021-02-02","Hour":"22","Status":"0","Extra":"N","Zone":"1","ZoneName":"Ca\u0142a doba","Taryfa":"G11"},"23":{"EC":"0.612","Date":"2021-02-02","Hour":"23","Status":"0","Extra":"N","Zone":"1","ZoneName":"Ca\u0142a doba","Taryfa":"G11"},"24":{"EC":"0.537","Date":"2021-02-02","Hour":"24","Status":"0","Extra":"N","Zone":"1","ZoneName":"Ca\u0142a doba","Taryfa":"G11"}},"zone":[],"zoneN":0,"other":[],"OZE":{"1":{"EC":"0","Date":"2021-02-02","Hour":"1","Status":"0","Extra":"N","Zone":"1","ZoneName":"Ca\u0142a doba"},"2":{"EC":"0","Date":"2021-02-02","Hour":"2","Status":"0","Extra":"N","Zone":"1","ZoneName":"Ca\u0142a doba"},"3":{"EC":"0","Date":"2021-02-02","Hour":"3","Status":"0","Extra":"N","Zone":"1","ZoneName":"Ca\u0142a doba"},"4":{"EC":"0","Date":"2021-02-02","Hour":"4","Status":"0","Extra":"N","Zone":"1","ZoneName":"Ca\u0142a doba"},"5":{"EC":"0","Date":"2021-02-02","Hour":"5","Status":"0","Extra":"N","Zone":"1","ZoneName":"Ca\u0142a doba"},"6":{"EC":"0","Date":"2021-02-02","Hour":"6","Status":"0","Extra":"N","Zone":"1","ZoneName":"Ca\u0142a doba"},"7":{"EC":"0","Date":"2021-02-02","Hour":"7","Status":"0","Extra":"N","Zone":"1","ZoneName":"Ca\u0142a doba"},"8":{"EC":"0.001","Date":"2021-02-02","Hour":"8","Status":"0","Extra":"N","Zone":"1","ZoneName":"Ca\u0142a doba"},"9":{"EC":"0.123","Date":"2021-02-02","Hour":"9","Status":"0","Extra":"N","Zone":"1","ZoneName":"Ca\u0142a doba"},"10":{"EC":"0.23","Date":"2021-02-02","Hour":"10","Status":"0","Extra":"N","Zone":"1","ZoneName":"Ca\u0142a doba"},"11":{"EC":"0.714","Date":"2021-02-02","Hour":"11","Status":"0","Extra":"N","Zone":"1","ZoneName":"Ca\u0142a doba"},"12":{"EC":"0.337","Date":"2021-02-02","Hour":"12","Status":"0","Extra":"N","Zone":"1","ZoneName":"Ca\u0142a doba"},"13":{"EC":"0.506","Date":"2021-02-02","Hour":"13","Status":"0","Extra":"N","Zone":"1","ZoneName":"Ca\u0142a doba"},"14":{"EC":"0.237","Date":"2021-02-02","Hour":"14","Status":"0","Extra":"N","Zone":"1","ZoneName":"Ca\u0142a doba"},"15":{"EC":"0.222","Date":"2021-02-02","Hour":"15","Status":"0","Extra":"N","Zone":"1","ZoneName":"Ca\u0142a doba"},"16":{"EC":"0.088","Date":"2021-02-02","Hour":"16","Status":"0","Extra":"N","Zone":"1","ZoneName":"Ca\u0142a doba"},"17":{"EC":"0.013","Date":"2021-02-02","Hour":"17","Status":"0","Extra":"N","Zone":"1","ZoneName":"Ca\u0142a doba"},"18":{"EC":"0","Date":"2021-02-02","Hour":"18","Status":"0","Extra":"N","Zone":"1","ZoneName":"Ca\u0142a doba"},"19":{"EC":"0","Date":"2021-02-02","Hour":"19","Status":"0","Extra":"N","Zone":"1","ZoneName":"Ca\u0142a doba"},"20":{"EC":"0","Date":"2021-02-02","Hour":"20","Status":"0","Extra":"N","Zone":"1","ZoneName":"Ca\u0142a doba"},"21":{"EC":"0","Date":"2021-02-02","Hour":"21","Status":"0","Extra":"N","Zone":"1","ZoneName":"Ca\u0142a doba"},"22":{"EC":"0","Date":"2021-02-02","Hour":"22","Status":"0","Extra":"N","Zone":"1","ZoneName":"Ca\u0142a doba"},"23":{"EC":"0","Date":"2021-02-02","Hour":"23","Status":"0","Extra":"N","Zone":"1","ZoneName":"Ca\u0142a doba"},"24":{"EC":"0","Date":"2021-02-02","Hour":"24","Status":"0","Extra":"N","Zone":"1","ZoneName":"Ca\u0142a doba"}},"myAverage":[],"weather":[],"cloudiness":[]},"sum":12.626,"sumOther":0,"sumMyAverage":0,"avgMyAverageValue":0,"OZEValue":2.471,"sLastReadOZE":"Stan licznika: <br \/><span>Strefa T1<dd class=\"scale\">007680<\/dd><\/span>","sumTarget":0,"pie":[],"TargetValue":0,"TargetRange":0,"legend":"","countTarif":1,"sCompareTable":"","isFull":true,"isFullOther":true,"average":0.526,"predict":0,"averageOther":0,"averageOZE":0.103,"predictOZE":0,"ok":1}


1 użytkowników online, w tym zalogowanych: 0, gości: 1