无法获取 cookie?
Cannot GET cookie?
如果我们在 chrome 中访问 this url,打开 devtools,我们可以清楚地看到一个 cookie 出现(在 chrome 开发者工具 -> 'application' -> 'cookies')。
如果我们使用 httr::GET()
尝试同样的事情,我们希望看到 cookie,但我们没有:
library(httr)
r <- GET("https://aps.dac.gov.in/LUS/Public/Reports.aspx")
r$cookies
# [1] domain flag path secure expiration name value
# <0 rows> (or 0-length row.names)
为什么会这样,我们如何检索 cookie(连同页面 html)最好使用 httr
and/or rvest
(加上其他建议,但没有 使用实际的浏览器,无头或其他方式,包括 selenium)
发生这种情况的原因是因为直到用户提交表单(通过打开 chrome 开发人员工具并观察 'application' -> 'cookies' cookie 才真正生成在表单提交前后,我们看到 cookie 出现。
请注意,这可以使用 chrome incognito 进行模拟(它无法访问常规 chrome 中的 cookie,因此可以重复尝试以进行演示)。
如果我们在 chrome 中访问 this url,打开 devtools,我们可以清楚地看到一个 cookie 出现(在 chrome 开发者工具 -> 'application' -> 'cookies')。
如果我们使用 httr::GET()
尝试同样的事情,我们希望看到 cookie,但我们没有:
library(httr)
r <- GET("https://aps.dac.gov.in/LUS/Public/Reports.aspx")
r$cookies
# [1] domain flag path secure expiration name value
# <0 rows> (or 0-length row.names)
为什么会这样,我们如何检索 cookie(连同页面 html)最好使用 httr
and/or rvest
(加上其他建议,但没有 使用实际的浏览器,无头或其他方式,包括 selenium)
发生这种情况的原因是因为直到用户提交表单(通过打开 chrome 开发人员工具并观察 'application' -> 'cookies' cookie 才真正生成在表单提交前后,我们看到 cookie 出现。
请注意,这可以使用 chrome incognito 进行模拟(它无法访问常规 chrome 中的 cookie,因此可以重复尝试以进行演示)。