RCurl is another low level client for libcurl. Of the two low-level curl clients, we recommend using curl. httpRequest is another low-level package for HTTP requests that implements the GET, POST and multipart POST verbs, but we do not recommend its use.
https://cran.r-project.org/web/views/WebTechnologies.html
上面总而言之就是推荐使用curl包,比较好的支持https、下载等。其他包的体验有点不妙。
在静态页面里,rvest包的表现已经足够应对大部分情况。
但遇到动态页面或者需要伪装登陆的请求,就需要用上curl包。
举个例子:携带cookie来请求某api
library(curl) #加载curl
h
handle_setopt(h, cookie = "cookie") # 在handle中的cookie处传入已获得的cookie字串
curl(url = api_url, handle = h) # 对目标api发起请求
这样就可以携带cookie的状态进行请求了,数据请求下来后,可用josnlite、readlines等进行数据整理。
查看文档时,发现handley、Rstudio都是作者之一的,至少说明在,如果rstudio里使用curl包,体验相对更好的。
其他参考:
https://cran.r-project.org/web/packages/curl/vignettes/intro.html#getting_in_memory
https://cran.r-project.org/web/views/WebTechnologies.html
另外再记录下汇总了相关主题的包的网站。
https://cran.r-project.org/web/views/
https://mran.revolutionanalytics.com/taskview
领取专属 10元无门槛券
私享最新 技术干货