2015-04-02 13 views
9

Więc nie jestem w 100% pewien, że to jest możliwe, ale znalazłem a good solution in Ruby oraz w python, więc zastanawiałem się, czy coś podobnego może działać w R.Jak mogę zrzutu ekranu witryny za pomocą R?

Zasadniczo, biorąc pod uwagę URL, chcę, aby uczynić ten adres URL Zrób zrzut ekranu z renderowaniem jako .png i zapisz zrzut ekranu do określonego folderu. Chciałbym to wszystko zrobić na bezgłowym serwerze Linux.

Czy moje najlepsze rozwiązanie będzie uruchamiać połączenia system z narzędziem takim jak CutyCapt, czy istnieje zestaw narzędzi opartych na R, który pomoże mi rozwiązać ten problem?

Odpowiedz

18

można wykonywać zrzuty ekranu przy użyciu Selen:

library(RSelenium) 
rD <- rsDriver(browser = "phantomjs") 
remDr <- rD[['client']] 
remDr$navigate("http://www.r-project.org") 
remDr$screenshot(file = tf <- tempfile(fileext = ".png")) 
shell.exec(tf) # on windows 
remDr$close() 
rD$server$stop() 

We wcześniejszych wersjach, byłeś w stanie zrobić:

library(RSelenium) 
startServer() 
remDr <- remoteDriver$new() 
remDr$open() 
remDr$navigate("http://www.r-project.org") 
remDr$screenshot(file = tf <- tempfile(fileext = ".png")) 
shell.exec(tf) # on windows 
+0

Wow, to dokładnie to, czego szukałem. Dziękuję Ci! – Zach

+1

Możesz użyć 'browseURL (tf)' aby wyświetlić zrzut ekranu na Linuksie – jsta

+1

Funkcja 'startServer()' jest nie działa w wersji 1.7.1. Mówi się, że "zalecanym sposobem uruchomienia serwera selenowego jest Docker, alternatywnie , zobacz funkcję RSelenium :: rsDriver." – drmariod

2

ja jej nie testowane, ale ten projekt open source wydaje się robić dokładnie to: https://github.com/wch/webshot

Jest to łatwe jako:

library(webshot) 
webshot("https://www.r-project.org/", "r.png") 
+0

Próbowałem tego i dostałem błąd z curl nie może uwierzytelnić – jrzelling

Powiązane problemy