2014-02-21 3 views
4

Загрузка файла из Интернета с использованием R проста и has been addressed previously.Скачивание файла из Интернета через R, несмотря на всплывающее окно

Мой вопрос касается того, как пройти всплывающее сообщение, которое, как представляется, не позволяет выполнить загрузку. В частности,

download.file(url = "https://www.chicagofed.org/applications/bhc_data/bhcdata_index.cfm?DYR=2012&DQIR=4", destfile = "data/test.zip") 

дает мне маленький файл мусора вместо нужного файла 18 мегабайт, что вы получите, если вы пошли в the website и вошел в 2012 год и квартал 4 вручную. Я подозреваю, что проблема в том, что, как видно, когда вы делаете это вручную, всплывающее окно прерывает процесс загрузки, спрашивая, сохранять ли файл или открывать его. Есть ли способ автоматически пройти всплывающее окно (т. Е. Через download.file)?

ответ

0

Пожалуйста, установите надстройку firebug в свой firefox и посмотрите, что произойдет, когда вы vistit и настройте веб-запрос. ИМО - это запрос на 2013 год, который является более сложным и нуждается в детальном анализе. Он использует куки-файлы и запускает некоторые действия сценариев ...

[23: 26: 52,593] GET https://ews-sdc.federalreserve.org/dcslfh67p000004nku46ap9ku_7w8e/dcs.gif?&dcsdat=1393021612511&dcssip=www.chicagofed.org&dcsuri=https://www.chicagofed.org/applications/bhc_data/bhcdata_index.cfm&dcsref=https://www.chicagofed.org/applications/bhc_data/bhcdata_index.cfm%3FDYR=2012%26DQIR=4&WT.tz=1&WT.bh=23&WT.ul=de-DE&WT.cd=24&WT.sr=1920x1080&WT.jo=Yes&WT.ti=FormButton:BHCDATA&WT.js=Yes&WT.jv=1.8&WT.ct=unknown&WT.bs=1920x570&WT.fv=11.2&WT.slv=Not%20enabled&WT.tv=9.4.0&WT.dl=27&WT.ssl=1&WT.es=www.chicagofed.org/applications/bhc_data/bhcdata_index.cfm&WT.ce=2&WT.vt_f_tlh=1393021608&WT.vtvs=1393019653663&WT.vtid=84.139.146.195-3993071712.30355278&WT.co_f=84.139.146.195-3993071712.30355278&WT.nv=content [HTTP/1.1 200 OK 202ms]

4

Это может быть сделано с помощью Selenium см https://github.com/ropensci/RSelenium.

require(RSelenium) 
fprof <- makeFirefoxProfile(list(browser.download.dir = "C:\\temp" 
           , browser.download.folderList = 2L 
           , browser.download.manager.showWhenStarting = FALSE 
           , browser.helperApps.neverAsk.saveToDisk = "application/zip")) 
RSelenium::startServer() 
remDr <- remoteDriver(extraCapabilities = fprof) 
remDr$open(silent = TRUE) 
remDr$navigate("https://www.chicagofed.org/applications/bhc_data/bhcdata_index.cfm") 
# click year 2012 
webElem <- remDr$findElement("name", "SelectedYear") 
webElems <- webElem$findChildElements("css selector", "option") 
webElems[[which(sapply(webElems, function(x){x$getElementText()}) == "2012")]]$clickElement() 

# click required quarter 

webElem <- remDr$findElement("name", "SelectedQuarter") 
Sys.sleep(1) 
webElems <- webElem$findChildElements("css selector", "option") 
webElems[[which(sapply(webElems, function(x){x$getElementText()}) == "4th Quarter")]]$clickElement() 

# click button 

webElem <- remDr$findElement("id", "downloadDataFile") 
webElem$clickElement() 
Смежные вопросы