Statt httplib jetzt requests für Abfrage der Webseite. Code ein wenig optimiert

This commit is contained in:
Hauke Zühl 2026-06-03 11:17:48 +02:00
parent a964b2b5bc
commit 3458b4e227
No known key found for this signature in database
GPG Key ID: B8F85731A2E143B1

View File

@ -23,8 +23,6 @@ import csv
import os import os
import re import re
import requests import requests
import httplib2
import urllib
import yaml import yaml
from datetime import datetime, timedelta from datetime import datetime, timedelta
@ -40,7 +38,7 @@ class Muell:
self.__host = 'api.abfall.io' self.__host = 'api.abfall.io'
self.__url = f'https://{self.__host}/?key={self.__key}&modus={self.__modus}&waction=export_csv' self.__url = f'https://{self.__host}/?key={self.__key}&modus={self.__modus}'
self.__export_als = f"{{'action':'{self.__url}','target':''}}" self.__export_als = f"{{'action':'{self.__url}','target':''}}"
self.__current_year = datetime.today().year self.__current_year = datetime.today().year
@ -87,9 +85,9 @@ class Muell:
def __start(self): def __start(self):
''' Initialisiert das System und sucht entsprechende Daten heraus ''' ''' Initialisiert das System und sucht entsprechende Daten heraus '''
url = f'https://{self.__host}/?key={self.__key}&modus={self.__modus}&waction=init' url = f'{self.__url}&waction=init'
http = httplib2.Http() resp = requests.post(url, data = self.__postdata, headers = self.__headers)
(resp, content) = http.request(url, "POST", headers = self.__headers, body = urllib.parse.urlencode(self.__postdata)) content = resp.content
result = re.findall(r"<input .*?name=.*? value=.*?/>", str(content)) result = re.findall(r"<input .*?name=.*? value=.*?/>", str(content))
@ -135,18 +133,19 @@ class Muell:
if not antwort_liste: if not antwort_liste:
# Keine vernünftigen Daten, ergo mal gucken, was die Webseite ergibt # Keine vernünftigen Daten, ergo mal gucken, was die Webseite ergibt
self.postdata['f_id_kommune'] = config['kommune'] self.__postdata['f_id_kommune'] = config['kommune']
self.postdata['f_id_strasse'] = config['strasse'] self.__postdata['f_id_strasse'] = config['strasse']
(name, value) = self.__start() (name, value) = self.__start()
if name != None and value != None: if name != None and value != None:
self.postdata[name] = value self.__postdata[name] = value
http = httplib2.Http() url = f'{self.__url}&waction=export_csv'
(resp, content) = http.request(self.__url, "POST", headers = self.__headers, body = urllib.parse.urlencode(self.__postdata)) resp = requests.post(url, data = self.__postdata, headers = self.__headers)
content = resp.content
antwort = str(content) antwort = str(content)
f = open(f'muell{self._current_year}.csv', 'wb') f = open(f'muell{self.__current_year}.csv', 'wb')
f.write(content) f.write(content)
f.close() f.close()
(antwort_liste, headline) = self.__read_file(self.__current_year) (antwort_liste, headline) = self.__read_file(self.__current_year)