前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >R语言获取网页快照

R语言获取网页快照

作者头像
一粒沙
发布2021-02-19 14:30:00
1.2K0
发布2021-02-19 14:30:00
举报
文章被收录于专栏:R语言交流中心R语言交流中心

今天给大家介绍一个在R中的神器-网页快照获取。这个包可以进行批量获取网页并转化为图像,那这功能有啥用呢,大家可以开动脑筋想想,反正和shiny配合起来那是很好玩的。

首先我们看下包的安装:

代码语言:javascript
复制
install.packages("webshot")

接下来我们直接通过实例来看下具体的使用方式:

代码语言:javascript
复制
###安装依赖的包
webshot::install_phantomjs()
代码语言:javascript
复制
##参数默认的快照
webshot("https://github.com/rstudio/shiny")#保存文件在当前目录中,并命名为webshot.png
代码语言:javascript
复制
##延长等待时间保证页面的完整性
webshot("https://github.com/rstudio/shiny",delay = 25)
代码语言:javascript
复制
##批量进行网页获取,将会进行以webshot000x进行排序命名
webshot(c("https://github.com/rstudio/shiny",
         "http://rstudio.github.io/leaflet"),
       delay = 0.5)

###当然也可以进行自定义命名,需要设置file,用一个向量来表示输出文件的名称列表

代码语言:javascript
复制
webshot(c("https://github.com/rstudio/shiny",
          "http://rstudio.github.io/leaflet"),file=c("a.png","b.png")
       ,delay = 0.5)
代码语言:javascript
复制
##当前屏幕的截取
webshot("http://rstudio.github.io/leaflet","leaflet-viewport.png",cliprect = "viewport")
代码语言:javascript
复制
###可以自己选取想要街区的矩形区域
webshot("http://rstudio.github.io/leaflet","leaflet-clip.png",
       cliprect = c(200, 5, 400, 300))
代码语言:javascript
复制
##通过CSS样式提取快照
webshot("http://rstudio.github.io/leaflet","leaflet-clip.png",selector = c("#next-steps"))
代码语言:javascript
复制
##如果区域小的话还可以进行扩展
webshot("http://rstudio.github.io/leaflet","leaflet-boxes.png",
       selector = "#installation", expand = c(10, 50, 0, 50))
代码语言:javascript
复制
##如果有的网站需要用户提供浏览器参数,那也是提供了这个功能

webshot(
 "https://www.rstudio.com/products/rstudio/download/",
 "rstudio.png",
 useragent = "Mozilla/5.0 (Macintosh; Intel Mac OS X)"
)

####和shiny的交互两种方式

代码语言:javascript
复制
##1. 直接访问项目所在的目录
appdir <-system.file("examples", "01_hello",package="shiny")
  #With a Shiny directory
 appshot(appdir, "01_hello.png")
代码语言:javascript
复制
##2.通过正在运行的项目进行获取
shinyapp <- shiny::shinyAppDir(appdir)
 appshot(shinyapp,"01_hello_app.png")
代码语言:javascript
复制
##其它的设置可以直接参考webshot获取在shiny中的任何元素。比如获取某个ID的截图:
appshot(appdir,"01_hello.png",selector="#distPlot")

当然如果获得的截图的文件太大,那需要进行压缩或者缩小比例需要用到函数

resize和shrink。

欢迎大家学习交流!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-01-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 R语言交流中心 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档