我试图爬和刮一个网站的表格。我在网站上有一个帐户,我发现Rcrawl可以帮助我根据特定的关键字获取表的部分内容。问题是,在GitHub页面上,没有提到如何通过帐户/密码保护来抓取一个站点。
登录的一个例子如下:
login <- list(username="username", password="password",)你知道Rcrawler是否有这个功能吗?例如:
Rcrawler(Website = "http://www.glofile.com" +
list (username = "username", password = "password" + no_cores = 4, no_conn = 4, ExtractCSSPat = c(".entry-title",".entry-content"), PatternsNames = c("Title","Content"))我确信上面的代码是错误的,但我希望它能给你一个我想要做的事情的想法。
发布于 2018-11-16 12:04:44
为了在R中抓取或刮受密码保护的网站,更确切地说,基于HTML的身份验证n,您需要使用web驱动程序来刺激登录会话,幸运的是,这是可能的,因为Rcrawler v0.1.9实现幻影 web驱动程序(一个浏览器,但没有图形界面)。
在下面的示例中,将尝试登录博客网站。
library(Rcrawler)下载并安装web驱动程序
install_browser()运行浏览器会话
br<- run_browser()如果遇到错误,请禁用防病毒或允许系统中的程序设置。
运行自动登录操作,如果成功,则返回登录会话。
br<-LoginSession(Browser = br, LoginURL = 'http://glofile.com/wp-login.php'
LoginCredentials = c('demo','rc@pass@r'),
cssLoginFields =c('#user_login', '#user_pass'),
cssLoginButton ='#wp-submit' )最后,如果您已经知道要刮/下载的私有页面,请使用
DATA <- ContentScraper(... , browser =br)或者,简单地抓取/刮/下载所有的页面
Rcrawler(Website = "http://glofile.com/",no_cores = 1 ,no_conn = 1,LoggedSession = br ,...)不要使用多个并行no_core/no_conn,因为许多网站拒绝一个用户的多个会话。保持合法,并通过设置Obeyrobots = TRUE来尊重robots.txt
您可以访问浏览器函数,例如:
br$session$getUrl()
br$session$getTitle()
br$session$takeScreenshot(file = "image.png") https://stackoverflow.com/questions/51243929
复制相似问题