ako*_*sch 8 https haskell session-cookies web-scraping http-conduit
我正在尝试使用HTTPS从网站上抓取数据.我成功地使用Network.HTTP.Conduit发布基本请求(发布凭据等),但是无法从响应头(Set-Cookie)中提取cookie信息.貌似http-conduit有自己的处理cookie 的机制,我无法理解.
Network.HTTP.Conduit.Browser似乎自动处理cookie(我很好),但由于缺少文档,我无法使用它.
有经验处理http-conduit浏览器模块的人可以告诉我如何:
对我来说,看起来Network.HTTP.Conduit.Browser的抽象级别比Network.HTTP.Conduit更适合我的应用程序,所以即使我可以使用后者手动处理cookie,我也想进行切换.
我从未使用过浏览器,但我使用过http-conduit。我阅读了源代码来回答这些问题,如果有任何错误,我深表歉意。
做你正在做的同样的事情。Manager当您使用正确的创建了 后managerCheckCerts,将其传递给browse :: Manager -> BrowserAction a -> ResourceT IO a。
makeRequest :: Request IO -> BrowserAction (Response (Source IO BS.ByteString))需要一个Request IO; 像以前一样使用urlEncodedBody主体中的参数创建 POST 请求并将其传递给makeRequest. 我相信设置redirectCount为 0 以禁用重定向跟随。
我相信你只需要使用getCookieJar :: BrowserAction CookieJar; 来自.BrowserActiongetBrowserState :: BrowserAction BrowserState
http-conduit 在浏览器模块之外管理 cookie 的方式并非如此。Cookie 在 HTTP 响应中返回;您可以做的就是解析响应并将 cookie 存储在 cookie jar 中。这实际上就是浏览器真正所做的一切。