Загрузите CSV с защищенного паролем сайта - PullRequest
0 голосов
/ 15 февраля 2019

Если вы зайдете на веб-сайт https://www.myfxbook.com/members/iseasa_public1/rush/2531687, щелкните по этому выпадающему окну Export, затем выберите CSV, вы попадете на https://www.myfxbook.com/statements/2531687/statement.csv, и загрузка (из браузера) продолжится автоматически.Дело в том, что для получения информации вам необходимо войти в систему https://www.myfxbook.com;в противном случае загруженный файл будет содержать текст «Пожалуйста, войдите на Myfxbook.com, чтобы использовать эту функцию».

Я пытался использовать read.csv, чтобы получить файл csv в R, но получил только «Пожалуйста, войдите»сообщение.Я считаю, что R должен смоделировать html-сеанс (что бы это ни было, я не уверен в этом), чтобы доступ был предоставлен.Затем я попытался сначала использовать некоторые инструменты для очистки, но безрезультатно.

library(rvest)
login <- "https://www.myfxbook.com"
pgsession <- html_session(login)
pgform <- html_form(pgsession)[[1]]
filled_form <- set_values(pgform, loginEmail = "*****", loginPassword = "*****") # loginEmail and loginPassword are the names of the html elements
submit_form(pgsession, filled_form)

url <- "https://www.myfxbook.com/statements/2531687/statement.csv"
page <- jump_to(pgsession, url) # page will contain 48 bytes of data (in the 'content' element), which is the size of that warning message, though I could not access this content.

Из приведенной выше попытки я получил, что page имеет элемент с именем cookies, который в свою очередь содержит JSESSIONID.Из моего исследования кажется, что JSESSIONID - это то, что «доказывает», что я зашел на этот сайт.Тем не менее, загрузка CSV не работает.

Тогда я попытался:

library(RCurl)
h <- getCurlHandle(cookiefile = "")
ans <- getForm("https://www.myfxbook.com", loginEmail = "*****", loginPassword = "*****", curl = h) 
data <- getURL("https://www.myfxbook.com/statements/2531687/statement.csv", curl = h)
data <- getURLContent("https://www.myfxbook.com/statements/2531687/statement.csv", curl = h)

Кажется, что эти библиотеки были созданы для очистки HTML-страниц и не работают с файлами в других форматах.

Я был бы очень признателен за любую помощь, поскольку я уже довольно давно пытаюсь сделать эту работу.

Спасибо.

...