首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >爬虫-如何抓取帐户/密码保护的网站?

爬虫-如何抓取帐户/密码保护的网站?
EN

Stack Overflow用户
提问于 2018-07-09 10:56:39
回答 1查看 1.1K关注 0票数 1

我试图爬和刮一个网站的表格。我在网站上有一个帐户,我发现Rcrawl可以帮助我根据特定的关键字获取表的部分内容。问题是,在GitHub页面上,没有提到如何通过帐户/密码保护来抓取一个站点。

登录的一个例子如下:

代码语言:javascript
复制
login <- list(username="username", password="password",)

你知道Rcrawler是否有这个功能吗?例如:

代码语言:javascript
复制
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"))

我确信上面的代码是错误的,但我希望它能给你一个我想要做的事情的想法。

EN

回答 1

Stack Overflow用户

发布于 2018-11-16 12:04:44

为了在R中抓取或刮受密码保护的网站,更确切地说,基于HTML的身份验证n,您需要使用web驱动程序来刺激登录会话,幸运的是,这是可能的,因为Rcrawler v0.1.9实现幻影 web驱动程序(一个浏览器,但没有图形界面)。

在下面的示例中,将尝试登录博客网站。

代码语言:javascript
复制
 library(Rcrawler)

下载并安装web驱动程序

代码语言:javascript
复制
install_browser()

运行浏览器会话

代码语言:javascript
复制
br<- run_browser()

如果遇到错误,请禁用防病毒或允许系统中的程序设置。

运行自动登录操作,如果成功,则返回登录会话。

代码语言:javascript
复制
 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' )

最后,如果您已经知道要刮/下载的私有页面,请使用

代码语言:javascript
复制
DATA <- ContentScraper(... , browser =br)

或者,简单地抓取/刮/下载所有的页面

代码语言:javascript
复制
Rcrawler(Website = "http://glofile.com/",no_cores = 1 ,no_conn = 1,LoggedSession = br ,...)

不要使用多个并行no_core/no_conn,因为许多网站拒绝一个用户的多个会话。保持合法,并通过设置Obeyrobots = TRUE来尊重robots.txt

您可以访问浏览器函数,例如:

代码语言:javascript
复制
 br$session$getUrl()
 br$session$getTitle()
 br$session$takeScreenshot(file = "image.png") 
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51243929

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档