Lebenszeit- und Cookie-Management

Ob der Holtzbrinck-Verlag automatisierte Downloads durch Abonnentinnen erschweren möchte oder schlicht ein neues CMS implementiert hat: Mein Skript funktioniert nicht mehr, obwohl sich am Quellcode der Download-Seite nichts geändert hat.

BeautifulSoup extrahiert weiterhin erfolgreich die Download-Links, aber die digitalen Zeitungsdokumente lassen sich nicht mehr mit

requests.get(file_link, auth=(username,password))

herunterladen. Offenbar akzeptiert der neue Download-Bereich (/restricted/) keine unmittelbare Authentifizierung mehr, sondern prüft den Session-Cookie, der durch einen vorangehenden Login gesetzt wurde. Wenn man also den Cookie namens creid aus dem Browser übernimmt und mitsendet –

response = requests.get(file_link, cookies=cookie_data)

werden die Dokumente anstandslos geliefert. Leider haben sie nun auch keine sprechenden Namen mehr (Name der Zeitung, Jahr und Ausgabe), sondern automatisch generierte Zeichenketten wie 0138e8cd-233f-43a0-8f33-ec13b2c70f31 oder 20f0ff56-5cea-4bf6-8a3e-c03c46673b3d. BeautifulSoup to the rescue:

edition = soup.find('p', {'class': 'epaper-info-title pull-left'}) result = re.match('.* (\d\d)/(\d\d\d\d)', edition.contents[0]) current_edition_name = f'zeitung_{result.group(2)}_{result.group(1)}'

Mit einem Anpassungsaufwand von einer Stunde kann ich nun jede Woche eine Minute sparen (manueller Download, manuelle Umbenennung der Dateien, manuelle Ablage im Zielordner) und schon ab Dezember 2022 wertvolle Lebenszeit sparen. Wenn der Holtzbrinck-Verlag mitspielt.