Ich versuche mit HTTPS Daten von einer Site zu scrappen. Ich habe es geschafft, grundlegende Anfragen mit Network.HTTP.Conduit erfolgreich zu stellen (Anmeldeinformationen zu senden, etc.), konnte aber keine Cookie-Informationen aus den Antwortheadern extrahieren (Set-Cookie). Es sieht so aus, als ob http-Conduit seine eigener Mechanismus zum Umgang mit Cookies, den ich nicht verstanden habe.
Network.HTTP.Conduit.Browser scheint sich automatisch mit Cookies zu beschäftigen (was für mich in Ordnung ist), aber ich konnte es wegen fehlender Dokumentation .
Könnte jemand mit mehr Erfahrung im Umgang mit dem http-Conduit-Browser-Modul mir zeigen, wie ich:
Für mich sieht es so aus als wäre die Abstraktionsstufe von Network.HTTP.Conduit.Browser für meine Anwendung besser geeignet als bei Network.HTTP.Conduit, also würde ich gerne den Switch machen, auch wenn ich manuell mit Cookies umgehen könnte Letzteres.
Ich habe noch nie Browser benutzt, aber ich habe http-Conduit benutzt. Ich lese den Quellcode, um diese Fragen zu beantworten, ich entschuldige mich, wenn ich Fehler mache.
Mach dasselbe, was du tust. Wenn Sie die Manager
mit der richtigen managerCheckCerts
erstellt haben, übergeben Sie diese an browse :: Manager -> BrowserAction a -> ResourceT IO a
.
makeRequest :: Request IO -> BrowserAction (Response (Source IO BS.ByteString))
benötigt Request IO
; Verwenden Sie urlEncodedBody
wie zuvor, um eine POST-Anfrage mit Parametern im Textkörper zu erstellen und an makeRequest
weiterzuleiten. Setzen Sie redirectCount
auf 0, um die Weiterleitung zu deaktivieren, glaube ich.
Ich glaube, Sie müssen nur getCookieJar :: BrowserAction CookieJar
; Das BrowserAction
kommt von getBrowserState :: BrowserAction BrowserState
.
Die Art und Weise, wie HTTP-Conduit Cookies außerhalb des Browser-Moduls verwaltet, ist dies nicht. Cookies werden in der HTTP-Antwort zurückgegeben. Sie können die Antwort analysieren und die Cookies in einem Keksbehälter aufbewahren. Das ist eigentlich alles Browser wirklich.
Tags und Links haskell https session-cookies web-scraping http-conduit