首页 > 解决方案 > 使用登录名抓取页面

问题描述

在询问之前,我确保查看 stackexchange 上的其他 rvest 问题。尤其是:

R - 使用 rvest 抓取受密码保护的网站,而无需在每次循环迭代时登录

使用 rvest 抓取带有登录页面的网站

我正在尝试使用股息.com 的 rvest 刮除除息日期

按照上面的代码,我写了代码,但我似乎遇到了麻烦。

# ADDRESS OF LOGIN PAGE:
URL <- "https://www.dividend.com/login/"

# CREATE PAGE SESSION
pgsession <- html_session(URL)

# CREATE PAGE FORM
pgform <- html_form(pgsession)[[2]]  # Problem is here,  I get a blank list

# FILL IN PASSWORD AND ID
filled_form <-  set_values(form,
                  user_login = email within quotes, 
                  password = password within quotes)

# GO TO EX-DIVIDEND DATE PAGE AND SCRAPE
div_data <-  submit_form(pgsession, filled_form) %>% 
jump_to(url from which `to scrape first table within quotes)`
 %>% html_node(list("td a", "td span", "tr td") %>% html_table()

但是 html_form(pgsession) 给我返回了一个空白列表()。

谁能给我一些帮助?

谢谢

标签: rrvest

解决方案


如果其他一切都按预期工作,我认为问题在于使用html_session内部对象html_form。它期待一个节点或一个节点集,所以我认为这应该可行。

# CREATE PAGE FORM
pgform <- html_form(read_html("https://www.dividend.com/login/"))

您仍然必须从pgform对象中提取正确的形式,但我认为应该是这样。


推荐阅读