我用Rcrawler来抓取一个urls向量。对他们中的大多数人来说,这是很好的工作,但现在和他们中的每一个都不会被爬行。一开始,我只在https:// sites上注意到了这一点,它的地址是这里。但是我使用的是0.1.7版本,它应该具有https:// capability。
我还发现另一个用户也有同样的问题,但也有http://链接。我查了一下我的情况,他的网站也不适合我。
当我试图爬上其中一个网站时,我得到的是这样的信息:
>library(Rcrawler)
>Rcrawler("https://manager.submittable.com/beta/discover/?page=1&sort=")
>In process : 1..
Progress: 100.00 % : 1 parssed from 1 | Collected pages: 1 |
Level: 1
+ Check INDEX dataframe variable to see crawling details
+ Collected web pages are stored in Project folder
+ Project folder name : manager.submittable.com-191922
+ Project folder path : /home/anna/Documents/Rstudio/Submittable/manager.submittable.com-191922 有什么想法吗?还在等待造物主的回复。
发布于 2018-11-14 23:16:50
您尝试抓取一个受密码保护的+ javascript页面,您需要一个web驱动程序来创建一个登录会话并呈现javascript元素,因此,Rcrawler 0.1.9实现了一个虚拟web驱动程序。
对于您的情况,从安装最后一个版本的Rcrawler开始,然后按照以下步骤操作:
1 -安装web驱动程序(实际上是幻影)
library(Rcrawler)
install_browser()2 -运行无头浏览器(一个真正的浏览器但不可见的br <- Run _()
如果出现错误,这意味着操作系统或防病毒正在阻塞web驱动程序(phantom.js)进程,请尝试暂时禁用防病毒或调整系统配置以允许幻影is和processx可执行文件。
3-对会话进行身份验证
br<-LoginSession(Browser = br, LoginURL = 'https://manager.submittable.com/login',
LoginCredentials = c('your login','your pass'),
cssLoginFields =c('#email', '#password'),
XpathLoginButton ="//*[@type=\'submit\']" )4 -浏览网站页面
Rcrawler(Website ="https://manager.submittable.com/beta/discover/",no_cores = 1,no_conn = 1, LoggedSession = br, RequestsDelay = 3)您可以使用以下方法访问You驱动程序函数:
br$session$RequestsDelay:给每个请求3秒钟,知道某些javascript需要一些时间才能完全加载
no_cores=no_conn=1:一个接一个地检索页面,因为一些网站拒绝多个日志会话。

这应该是为了爬行受密码保护的网页,然而,更大的网站有一种防止web抓取的高级保护,比如reCAPTCHA或其他检测连续/自动请求的http/javascript规则。所以如果他们提供API的话,最好使用他们的API。
我们仍然致力于提供在一个命令中爬行多个网站的能力。到目前为止,您只可以分别抓取每一个,或者使用ContentScraper功能,如果您想从同一个网站刮取URL/页面。
爬行器创建者
https://stackoverflow.com/questions/49944299
复制相似问题