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