【问题标题】:Rvest doesn't recognize a formRvest 无法识别表单
【发布时间】:2021-11-24 08:42:32
【问题描述】:

我正在尝试解析需要使用 Rvest 登录会话的网站。

我正在使用此代码开始:

login<-"https://www.drugs.com/account/login/"
session<-html_session(login) 
form<-html_form(session)

但即使在提取所有表单后,它也只能识别“高级搜索”表单而不是登录表单。

您知道为什么会发生这种情况吗?我想知道登录表单是否需要 javascript 或类似的东西。

谢谢你, 葡萄树

【问题讨论】:

    标签: r parsing web-scraping rvest


    【解决方案1】:

    根据您所在的位置,我认为问题可能出在欧盟 GDPR 同意上。我第一次打开网站时,它要求我接受 cookie 以便登录。接受在我的浏览器中设置以下 cookie:

    ddbab21688799cacb48f7d384642573f = "agree"
    

    并且只有在显示登录表单之后。对我来说,cookie 的名称始终设置为相同的值,但如果并非总是如此,那么您可能必须在 rvest 会话中接受同意才能设置 cookie。

    如果我在打开 rvest 会话时设置了 cookie,我会返回两个表单,其中一个是登录表单。 您可以按如下方式设置cookie:

    login <- "https://www.drugs.com/account/login/"
    session <- html_session(login, httr::set_cookies(ddbab21688799cacb48f7d384642573f = "agree"))
    form <- html_form(session)
    

    【讨论】:

    • 哇,谢谢你,我从来没有想过这个!大大的帮助,非常感谢!
    猜你喜欢
    • 1970-01-01
    • 2016-04-01
    • 2019-01-31
    • 1970-01-01
    • 1970-01-01
    • 2013-05-28
    • 2016-03-11
    • 2020-11-21
    • 1970-01-01
    相关资源
    最近更新 更多