2014-10-18 86 views
0

我需要從使用cookie保護的網站下載信息。我手動傳遞此保護,然後將Cookie插入httr如何使用httr正確設置cookie以獲取URL內容

這裏是類似的話題,但它並沒有解決我的問題:(Copying cookie for httr

library(httr) 
url<-"http://smida.gov.ua/db/emitent/year/xml/showform/32153/125/templ" 

cook<-"_SMIDA=9117a9eb136353bd6956651bd59acd37; __utmt=1; __utma=29983421.1729484844.1413489369.1413625619.1413627797.3; __utmb=29983421.7.10.1413627797; __utmc=29983421; __utmz=29983421.1413489369.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)" 

response <- GET(url, config(cookie= cook)) 

content(x = response,as = 'text', encoding = "UTF-8") 

所以,當我使用的內容還給我發信息,說我沒有登錄(像我一樣沒有餅乾)

我該如何解決這個問題?

測試憑據登錄:mytest2,道:qwerty12

回答

2

這將是方式set_cookiesGET & httr

GET("http://smida.gov.ua/db/emitent/year/xml/showform/32153/125/templ", 
    set_cookies(`_SMIDA` = "7cf9ea4bfadb60bbd0950e2f8f4c279d", 
       `__utma` = "29983421.138599299.1413649536.1413649536.1413649536.1", 
       `__utmb` = "29983421.5.10.1413649536", 
       `__utmc` = "29983421", 
       `__utmt` = "1", 
       `__utmz` = "29983421.1413649536.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)")) 

爲我工作,以及至少我認爲它沒有因爲我無法閱讀該語言。表格返回時具有相同的結構並且沒有提示登錄。

不幸的是,登錄時的captcha阻止使用Rselenium(或其他類似的抓取包),因此您必須繼續手動抓取這些cookie(或使用實用工具從會話中提取它們)。

最後,你真誠地想要認真考慮改變這些憑據,現在:-)

+0

謝謝,它幫助! 但它真的很奇怪,除非我重新啓動RStudio = \ – VadymB 2014-10-18 21:08:05

+0

並且你能否向我解釋下一件事:這個代碼沒有用,如果我第二次運行這個代碼,它將不起作用,因爲該站點會拒絕這些餅乾。 我試圖reset_config()但沒有任何反應。 這對我來說是真正的問題,因爲我想創建5-10個帳戶並同時下載數據 – VadymB 2014-10-18 21:57:55

+0

+1這應該真的成爲文檔的一部分。因爲這種語法不能被發現。 – 2015-03-31 17:50:46