R-скрипты перестают работать или возвращают соединение, отклоненное или сброшенное партнером - PullRequest
0 голосов
/ 17 марта 2020

Я пытаюсь очистить 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()
...