Кто-нибудь здесь использует docker с SeleniumPipes for R для просмотра веб-страниц на MA C с использованием chrome? У меня возникла проблема, когда код иногда запускается, но затем я попытаюсь запустить то же самое снова и получу ошибку. Вот все детали.
Я использую следующую команду docker:
docker run -d -p 4445:4444 -p 5901:5900 selenium/standalone-chrome-debug:2.53.1
и затем подключаюсь к серверу с помощью:
remDr <- seleniumPipes::remoteDr(browserName = "chrome", port = 4445L)
Я могу запускать простые вещи, такие как следующие, и получать правильный вывод без проблем при каждом запуске:
remDr %>% go("https://www.basketball-reference.com/players/a/acyqu01.html") %>% getCurrentUrl()
Я даже могу написать функцию например, следующее, а затем запустите список URL-адресов в качестве аргументов через функцию, и она вернет именно то, что я ожидал.
remDr %>%
go(url) %>%
getPageSource() %>%
html_nodes("table") %>%
html_table(header = TRUE) %>%
.[[1]] %>%
as_tibble(.name_repair = "unique") %>%
separate(NAME, c("first", "last"), sep = " ", extra = "drop") %>%
mutate(last = str_replace(last,","," ")) %>%
select(2,1,everything()) %>%
arrange(last) %>%
select(last,first,everything())
}
Но он будет работать только изредка. Большую часть времени он выдаст следующую ошибку:
Called go - Try no: 1 of 3
Called go - Try no: 2 of 3
Called go - Try no: 3 of 3
Error detected:
Response status code : 500
Selenium class exception: org.openqa.selenium.remote.SessionNotFoundException
Selenium Status code: 13
Selenium Status summary: UnknownError
Selenium Status detail: An unknown server-side error occurred while processing the command.
Selenium message: no such session
(Driver info: chromedriver=2.24.417424 (c5c5ea873213ee72e3d0929b47482681555340c3),platform=Linux 4.19.76-linuxkit x86_64) (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 4 milliseconds
Build info: version: '2.53.1', revision: 'a36b8b1', time: '2016-06-30 17:37:03'
System info: host: 'ecad2fa3e2d2', ip: '172.17.0.2', os.name: 'Linux', os.arch: 'amd64', os.version: '4.19.76-linuxkit', java.version: '1.8.0_91'
Driver info: org.openqa.selenium.chrome.ChromeDriver
Capabilities [{applicationCacheEnabled=false, rotatable=false, mobileEmulationEnabled=false, networkConnectionEnabled=false, chrome={chromedriverVersion=2.24.417424 (c5c5ea873213ee72e3d0929b47482681555340c3), userDataDir=/tmp/.org.chromium.Chromium.VfsmRp}, takesHeapSnapshot=true, pageLoadStrategy=normal, databaseEnabled=false, handlesAlerts=true, hasTouchScreen=false, version=53.0.2785.143, platform=LINUX, browserConnectionEnabled=false, nativeEvents=true, acceptSslCerts=true, locationContextEnabled=true, webStorageEnabled=true, browserName=chrome, takesScreenshot=true, javascriptEnabled=true, cssSelectorsEnabled=true}]
Session ID: f6a03daa7534b8d38b1355a287ddb792
Please check the response with errorResponse()
Please check the content returned with errorContent()
Error: Selenium Server error
Я не уверен, почему он будет запускаться иногда, а не в другой раз. Я обновил java и сделал все остальное, что могу придумать. У меня не было этих проблем с RSelenium, но я бы хотел использовать SeleniumPipes, поскольку намного проще запускать более сложный код. Я психолог и не имею опыта программирования, поэтому, пожалуйста, укажите все этапы ответа.