我需要登录此网站http://bit.do进行抓取。数据受密码保护,但我无法弄清楚如何登录R中的访问权限。
我试过
library (rvest)
url <-"http://bit.d o/#login/admin"
pgsession <-html_session(url)
pgform <-html_form(pgsession)[[1]]
filled_form <- set_values(pgform,
'username' = "test0001",
'password' = "qwerty1234")
submit_form(pgsession,filled_form)
url <- 'http://bit.d o/admin/url/http%3A||2F||2Fedition.cnn.com||2F2017||2F07||2F21||2Fopinions||2Ftrump-russia-putin-lain-opinion||2Findex.html'
data_page <- read_html(url)
data_link<- html_nodes(data_page,'td > a')
data_click<- html_nodes(data_page,'td span:nth-child(1)')
但是我遇到了这种错误
Submitting with 'NULL'
Error in xml2::url_absolute(form$url, session$url) :
Not compatible with STRSXP: [type=NULL].
我该怎么办?这些是我的测试凭证用户名:test0001,密码:qwerty1234。以下是我想要抓取的受保护数据示例http://bit.d o / admin / url / http%3A || 2F || 2Fedition.cnn.com || 2F2017 || 2F07 || 2F21 || 2Fopinions || 2Ftrump俄普京-躺-看来|| 2Findex.html
重要提示:注意由于StackOverflow限制我在域名中输入d和o之间的空格
答案 0 :(得分:1)
由于表单中没有url
字段,因此当您致电submit_form(pgsession, filled_form)
时,会发生xml2::url_absolute(form$url, session$url)
的调用,因为form$url
为{{1}而无法正常工作}}。为了解决这个问题,您需要为NULL
调用的form$url
提供一个值 - 即使它是空的 - 。使用url_absolute
填充filled_form
后尝试添加以下行:
set_values