如何从这个网站上抓取数据?

时间:2017-07-28 15:14:19

标签: r login web-scraping

我需要登录此网站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之间的空格

1 个答案:

答案 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