मैं डेटा को स्क्रैप करने के लिए इस वेबपृष्ठ http://volcano.si.edu/search_eruption.cfm का उपयोग करने का प्रयास कर रहा हूं। दो ड्रॉप-डाउन बॉक्स हैं जो डेटा के फ़िल्टर मांगते हैं। मुझे फ़िल्टर किए गए डेटा की आवश्यकता नहीं है, इसलिए मैं उन रिक्त स्थान को छोड़ देता हूं और "खोज विस्फोट" पर क्लिक करके अगले पृष्ठ पर जारी रहता हूं।वेबपृष्ठ पर एक डाउनलोड फ़ाइल बटन "क्लिक" करने के लिए आर का उपयोग
मैंने जो देखा है, हालांकि, परिणामी तालिका में केवल कॉलम की कुल मात्रा (केवल 24) की तुलना में केवल थोड़ी मात्रा में कॉलम (केवल 5) शामिल हैं। हालांकि, यदि आप "एक्सेल" बटन पर क्लिक करें और डाउनलोड की गई फ़ाइल खोलें तो सभी 24 कॉलम वहां होंगे। मुझे इसकी ही आवश्यकता थी।
तो ऐसा लगता है कि यह एक स्क्रैपिंग अभ्यास (प्रेजेंटर और रेवेस्ट का उपयोग करके) से कुछ और मुश्किल हो गया है। हालांकि, मैं आर 0 का उपयोग कर "एक्सेल" बटन पर वास्तव में "क्लिक" करने के तरीके पर फंस गया हूं। मेरा अनुमान है कि मुझे आरसेलेनियम का उपयोग करना होगा, लेकिन यहां मेरा कोड POST के साथ POST के साथ प्रोजेक्टर का उपयोग करने का प्रयास कर रहा है एक आसान तरीका है कि आप में से कोई भी व्यक्ति मिल सकता है। मैंने gdata, data.table, XML, आदि का उपयोग करने का भी प्रयास नहीं किया है, जो कि उपयोगकर्ता त्रुटि का नतीजा हो सकता है।
इसके अलावा, यह जानना उपयोगी हो सकता है कि डाउनलोड बटन को यूआरएल दिखाने के लिए राइट-क्लिक नहीं किया जा सकता है।
url <- "http://volcano.si.edu/search_eruption_results.cfm"
searchcriteria <- list(
eruption_category = "",
country = ""
)
mydata <- POST(url, body = "searchcriteria")
अपने ब्राउज़र में इंस्पेक्टर का उपयोग करना, मुझे लगता है कि दो फिल्टर "eruption_category" और "देश" और जब से मैं किसी भी फ़िल्टर किए गए डेटा की जरूरत नहीं है दोनों खाली हो जाएगा देखने के लिए सक्षम था।
आखिरकार, ऐसा लगता है कि उपर्युक्त कोड मुझे उस पृष्ठ पर ले जाएगा जिसमें तालिका केवल 5 कॉलम है। हालांकि, मैं अभी भी नीचे दिए गए कोड में फसल का उपयोग करके इस तालिका को स्क्रैप करने में असमर्थ था (केवल एक कॉलम को स्क्रैप करने के लिए सिलेक्टर गैजेट का उपयोग करके)। अंत में, इस हिस्से से ज्यादा कोई फर्क नहीं पड़ता क्योंकि, जैसा कि मैंने उपरोक्त कहा था, मुझे केवल 24 कॉलम की आवश्यकता नहीं है, लेकिन अगर आपको नीचे जो भी किया गया है, उसके साथ आपको कोई त्रुटि मिलती है, तो मैं आभारी रहूंगा ।
Eruptions <- mydata %>%
read_html() %>%
html_nodes(".td8") %>%
html_text()
Eruptions
किसी भी मदद प्रदान कर सकते हैं के लिए धन्यवाद।
यह पेज की तरह दिखता है एक जावास्क्रिप्ट का उपयोग करता रेंडर करने के लिए पृष्ठ। सबसे आसान और तेज़ तरीका सिर्फ एक्सेल फ़ाइल डाउनलोड कर सकता है और उस प्रक्रिया को संसाधित कर सकता है। डेटा स्थिर रूप से स्थैतिक दिखता है, इसलिए कभी-कभी डाउनलोड एक समस्या नहीं होनी चाहिए। – Dave2e
धन्यवाद @ डेव 2e। दुर्भाग्यवश, मुझे ** में ऐसा करने के लिए ** की आवश्यकता है। और जैसा कि आपने कहा था, यह ज्यादातर स्थिर है, लेकिन फिर भी अक्सर पर्याप्त अपडेट किया जाता है। – abet