Sammeldownload von Staatsbibl. Berlin - Digitale Zeitungen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • Kühling
    Erfahrener Benutzer
    • 06.03.2016
    • 158

    Sammeldownload von Staatsbibl. Berlin - Digitale Zeitungen

    Hallo,

    sieht jemand eine Möglichkeit einen Sammeldownload eines ganzen Jahrgangs einer Zeitung zu machen?

    Beispiel: http://zefys.staatsbibliothek-berlin...686518X/-/1927

    Ich möchte alle Zeitungen dieses Jahrgangs als PDF runtenladen.

    Über eine Kurze Anleitung mit entsprechender Freeware wäre ich dankbar !

    Heiko
  • sonki
    Erfahrener Benutzer
    • 10.05.2018
    • 4700

    #2
    Der Downloadlink der Hauptausgabe eines jeweiligen Tages ist ja folgender:

    http://content.staatsbibliothek-berl...s/SNP2686518X-19270601-0-0-0-0.pdf (hier: 01.06.1927)

    Rot markiert ist der variable Teil. Theoretisch müsst du also nur eine Liste mit allen möglichen Datums-URLs erzeugen (manuell oder automatisiert) und diese URLs dann in einen Downloader deiner Wahl kopieren und fertig.

    P.S. Oder, aber das setzt etwas Programmierung voraus, die Jahrgangs-URL einlesen, alle URLs die mit "index.php?id=dfg-viewer&set%5Bmets%5D=http%3A%2F%2Fcontent.staatsbi bliothek-berlin.de%2Fzefys%2FSNP2686518X-192" beginnen herausfiltern, die URLs in das obige Schema umwandeln und dann runterladen. Mit z.B. python ein Kinderspiel.
    Zuletzt geändert von sonki; 03.01.2020, 22:05.
    Слава Україні

    Kommentar

    • Kühling
      Erfahrener Benutzer
      • 06.03.2016
      • 158

      #3
      Danke ! Funktioniert mit dem Chrome Mass Downloader sehr gut !

      Kommentar

      • sonki
        Erfahrener Benutzer
        • 10.05.2018
        • 4700

        #4
        Da ich das auch mal kurz ausprobiert habe, hier mal ein schnelles quick&dirty Beispiel mit Python (extra-Module ist requests). Holt sich automatisch alle URLs (auch von Nebenausgaben) und lädt diese in ein anzulegendes "downloads"-Verzeichnis im gleichen Ordner wie das Script.

        Code:
        import sys
        import re
        import shutil
        import requests
        
        
        ###########################
        # CHANGE VALUES HERE
        ###########################
        base_url = 'http://zefys.staatsbibliothek-berlin.de/list/title/zdb/2686518X/-/1927'
        paper_id = '2686518X'
        ###########################
        
        
        
        #### DONT CHANGE ANYTHING BELOW ===
        
        base_pager_url = 'index.php?id=dfg-viewer&set%5Bmets%5D=http%3A%2F%2Fcontent.staatsbibliothek-berlin.de%2Fzefys%2FSNP'
        base_download_url = 'http://content.staatsbibliothek-berlin.de/zefys/'
        
        
        
        # Einlesen der Base URL
        content = None
        try:
          r = requests.get(base_url, allow_redirects=True, stream=True)
        except requests.exceptions.RequestException as err:
          # manage requests errors
          print('request error')
        else:
          content = r.text
        
        # URLs extrahieren, umwandeln und downloaden
        if content:
          pattern = r'href="(.+?)"'
          for match in re.finditer(pattern, content):
            href = str(match.group(1))
            search_string2 = '{}{}-'.format(base_pager_url, paper_id)
            if href.startswith(search_string2):
              _, ident = href.split('zefys%2F')
              ident = ident.replace('.xml', '.pdf')
              download_url = '{}{}'.format(base_download_url, ident)
              try:
                r = requests.get(download_url, allow_redirects=True, stream=True)
              except requests.exceptions.RequestException as err:
                print('request error')
              else:
                if r is not None and r.status_code == 200:
                  filePath = './downloads/{}'.format(ident)
                  with open(filePath, 'wb') as f:
                    r.raw.decode_content = True
                    shutil.copyfileobj(r.raw, f)
        Слава Україні

        Kommentar

        • Kühling
          Erfahrener Benutzer
          • 06.03.2016
          • 158

          #5
          mit Phyton bin ich etwas überfordert, aber die Google Chrome Extension "Simple Mass Downloader" läuft ganz gut ... erlaubt Pattern URLs ... setzt aber nach einer Anzahl von Downloads aus. Wahrscheinlich spielt der Server da nicht mit und stoppt die Requests.

          Heiko

          Kommentar

          Lädt...
          X