如何使用 rvest、httr、curl 在 R 中设置 cookie 的域?

How to set the domain of cookies in R using rvest, httr, curl?

如何使用 rvest/httr/curl 包在 R 中设置 cookie 的域?

我知道人们通常使用名称和值的命名字符向量来设置 cookie(如 ?set_cookies 报告所示)。是否也可以指定域?或者,也许更好的是,发送从 httr::cookies()?

返回的整个七栏 Netscape 规范

出现问题是因为我正在尝试为 UK Data Service, which uses a complex set of session cookies (see my earlier question) 自动执行基于 shibboleth 的登录过程。在登录过程的最后一步,站点传递了两个具有相同名称 (JSESSIONID) 但针对不同域(#HttpOnly_wayf.ukfederation.org.ukshib.data-archive.ac.uk)的 cookie。不过,作为一个命名向量,这两个 JSESSIONID 看起来很相似。我试过只传回一个或另一个,但似乎两者都是必要的,这也许不足为奇。

将参数 config = config(cookiejar = 'cookies.txt') 添加到您的 rvest 命令,例如 submit_form(session = s, form = f, config = config(cookiejar = 'cookies.txt')),就可以了。不需要事先生成一个名为 cookies.txt 的文件,顺便说一句:这一切都是自动完成的。