2015-03-17 5 views
11

मैं वेब डेटा स्क्रैप करने की कोशिश कर रहा हूं लेकिन पहले चरण में लॉगिन की आवश्यकता है। मैं सफलतापूर्वक अन्य वेबसाइटों में लॉग इन करने में सक्षम हूं लेकिन मुझे इस वेबसाइट के साथ एक अजीब त्रुटि है।क्यों 'त्रुटि: लंबाई (यूआरएल) == 1 सही नहीं है' कच्चे वेब स्क्रैपिंग

library("rvest") 
library("magrittr")  

research <- html_session("https://www.fitchratings.com/") 

signin <- research %>% 
    html_nodes("form") %>% 
    extract2(1) %>% 
    html_form() %>% 
    set_values (
    'userName' = "abc", 
    'password' = "1234" 
    ) 

research <- research %>% 
    submit_form(signin) 

जब मैं 'submit_form' लाइन मैं निम्नलिखित त्रुटि मिलती है चलाएँ:

> research <- research %>% 
+ submit_form(signin) 
Submitting with '<unnamed>' 
Error: length(url) == 1 is not TRUE 

अनाम के साथ भेजने से सही बी/सी कोई प्रवेश करें बटन को करने के लिए सौंपा नाम नहीं है। किसी भी मदद की सराहना की!

+0

में सक्षम होना चाहिए इस उदाहरण अभी भी मान्य है? जब मैं इसे चलाता हूं, तो मुझे 'त्रुटि: अज्ञात फ़ील्ड नाम: उपयोगकर्ता नाम, पासवर्ड' मिलता है। – WhiteViking

+1

इसके अलावा, ऐसा लगता है कि यह समस्या rvest में एक बग के कारण थी और rvest पैकेज लेखक द्वारा हल किया गया: https://github.com/hadley/rvest/issues/73 दुर्भाग्यवश कोई फसल नहीं है (फिक्स के साथ) के बाद से जारी किया गया है। यद्यपि github से नवीनतम संस्करण मैन्युअल रूप से स्थापित करना संभव हो सकता है। – WhiteViking

उत्तर

8

मुझे एक ही समस्या थी। मैं दौड़ने के देव संस्करण को पाने के लिए कुछ हुप्स के माध्यम से कूद गया, और यह अब आसानी से काम कर रहा है। यहां बताया गया है कि मैं इसके बारे में कैसे गया:

पहली चीज़ पहले। आपको RTools स्थापित करने की आवश्यकता है। सुनिश्चित करें कि आर बंद है। यह यहां पाया जा सकता है: https://cran.r-project.org/bin/windows/Rtools/। और Rtools की स्थापना के लिए जानकारी यहां मिल सकती है (यदि आप विंडोज का उपयोग कर रहे हैं): github.com/stan-dev/rstan/wiki/Install-Rtools-for-Windows

आर बूट करें, फिर इंस्टॉल करें लाइब्रेरी "प्रेजेंटर" और "आरसीपीपी" अगर आपके पास पहले से नहीं है।

"devtools" और सहसंबंधित github इंस्टॉलर स्थापित करें। जानकारी here मिल सकती है, लेकिन मैं आपको लिंक किए गए रेपो से त्वरित सारांश दूंगा।

विंडोज:

install.packages("devtools") 
library(devtools) 
build_github_devtools() 

#### Restart R before continuing #### 
install.packages("devtools.zip", repos = NULL, type = "source") 

# Remove the package after installation 
unlink("devtools.zip") 

मैक/लिनक्स:

devtools::install_github("hadley/devtools") 

अब, अंतिम चरणों को चलाने के लिए।

library(httr) 
library(Rcpp) 
library(devtools) 
install_github("hadley/rvest") 

अब आप submit_form(session, form) चलाने के लिए और नहीं अनुभव त्रुटि

Submitting with 'xxxx' 
Error: length(url) == 1 is not TRUE 
+1

नोट: Rtools केवल विंडोज़ पर आवश्यक है। मैक और लिनक्स पर, एक विकास पैकेज स्थापित करना छोटा है (यह एक आदेश है, जैसा कि आपके उत्तर में दिखाया गया है)। असल में, मैंने उम्र में सीआरएएन का उपयोग नहीं किया है, मैं गितूब से सबकुछ स्थापित करता हूं। –

संबंधित मुद्दे