Я пытаюсь очистить Angellist с помощью RSelenium, но получаю ошибку, я потратил часы, пытаясь пройти. Firefox открывается как надо и запускает скрипт. Однако, если он работал некоторое время, он либо прекращает работу, возвращая следующую ошибку:
Сообщение Selenium: страница загрузки истекло через 300000 мс, или я получаю сообщение об ошибке следующим образом:
Неопределенная ошибка в Звоните Вывод httr: не удалось подключиться к локальному порту 4445: соединение отклонено или
Неопределенная ошибка в вызове httr. Вывод httr: сбой записи: сброс соединения по пиру
library(RSelenium)
library(glue)
library(tidyverse)
driver <- rsDriver(
browser = c("firefox"),
remoteServerAddr = "localhost",
port = 4445L)
remote_driver <- driver[["client"]]
current_end_point <- 2*start_point
too_low <- start_point
too_high <- current_end_point
intermediate <- start_point
remote_driver$open()
while ((number_of_companies < 385 || number_of_companies > 395)) {
url <- glue("https://angel.co/companies?company_types[]=Startup&raised[min]={start_point}&raised[max]={current_end_point}")
remote_driver$navigate(url)
Sys.sleep(3)
webElem_found <- remote_driver$findElements(using = 'css selector', "div.count")
Sys.sleep(3)
if (length(webElem_found) > 0) {
webElem <- remote_driver$findElement(using = 'css selector', "div.count")
Sys.sleep(3)
comanies_found <- webElem$getElementText()
Sys.sleep(3)
number_of_companies <- as.numeric(str_extract(comanies_found, "[0-9]\\d{0,5}"))
print(number_of_companies)
if (number_of_companies < 395) {
too_low <- min(intermediate, current_end_point)
too_high <- max(intermediate, current_end_point)
current_end_point <- current_end_point + floor(abs(too_high - too_low)/2)
}
}
else if (number_of_companies > 395) {
too_low <- min(intermediate, current_end_point)
too_high <- max(intermediate, current_end_point)
current_end_point <- current_end_point - ceiling(abs(current_end_point - too_low)/2)
}
}
gc()