Puppeteer PDF Download funktioniert nicht richtig?

1 Antwort

Die .pdf() Funktion speichert die Webseite so, wie sie dargestellt ist, als pdf (etwa wie im Browser mit strg+p).

Anscheinend ist die Funktion, eine Ressource herunterzuladen, in Puppeteer noch nicht ganz ausgereift: https://github.com/puppeteer/puppeteer/issues/299.
Hier einen Browser einzusetzen, macht aber auch wenig Sinn, wenn nicht Sicherheitsmechanismen wie Captchas vor dem Download stehen. Du kannst diese Ressource direkt mit einem http Request anfragen; dazu können Pakete wie urllib oder requests verwendet werden.


Henri911 
Beitragsersteller
 06.10.2024, 19:25

Danke für den Hinweis! Bezüglich der HTTP Anfrage, gibt es aber ein Problem. Wenn ich die PDF so anfrage gibt es einen cors error: access-control-allow-origin

JanaL161  06.10.2024, 19:31
@Henri911

Das kann ich nicht replizieren. Wie genau sieht der Code aus?

Henri911 
Beitragsersteller
 06.10.2024, 19:38
@JanaL161
public downloadPDf() {
    const url = "https://notability.com/n/download/pdf/1_tGACBM45Y8SBARa88w_J/Note%203.%20Oct%202024.pdf"
    axios.get(url, {
       responseType: 'arraybuffer'
    }).then((response) => {
       const blob = new Blob([response.data], {type: 'application/pdf'})
       /*

       .............
        */
    })
}


Fehler in der Console:

Access to XMLHttpRequest at 'https://notability.com/n/download/pdf/1_tGACBM45Y8SBARa88w_J/Note%203.%20Oct%202024.pdf' from origin 'app://obsidian.md' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

JanaL161  06.10.2024, 19:42
@Henri911

Laut pypi ist das axios Paket nicht dafür geeignet, jegliche Dateien herunterzuladen, sondern nur von einem bestimmten Cloud-Service: https://pypi.org/project/axios/

Von dort aus kannst du die Datei natürlich nicht erreichen.

JanaL161  06.10.2024, 19:47
@JanaL161

Entschuldigung. Ich habe mich verguckt.

Ich glaube hier wurde etwas von deiner Applikation blockiert, nicht notability.

Henri911 
Beitragsersteller
 06.10.2024, 20:00
@JanaL161

Ahh verstehe! Auf meiner Rechner läufts jetzt auch. Dankeschön