दिलचस्प पोस्ट
यह प्रेषण_एसआईएनसी () कॉल फ्रीज़िंग क्यों है? अजगर: सिंटेक्स त्रुटि: स्ट्रिंग स्कैनिंग करते समय ईओएल एचटीएमएल 4, एचटीएमएल 5, एक्सएचटीएमएल, एमआईएमई प्रकार – निश्चित संसाधन सी ++ में माननीय मूल्यों से बचना दो रास्ते / उल्टे नक्शा JQuery datepicker भाषा एमएसबिल्ड के साथ वेब कैसे प्रकाशित करें? रेल पर रूबी में कई डेटाबेस से कनेक्ट करना URL से डाउनलोड / स्ट्रीम फ़ाइल – asp.net चींटी के साथ फ़ाइलों में स्ट्रिंग की खोज कैसे करें (सुनिश्चित करें कि निश्चित स्ट्रिंग को स्रोत फ़ाइलों में नहीं मिला है) प्रतिक्रिया शरीर पर कब्जा और लॉग इन करें एक स्ट्रिंग से सफेद स्थान ट्रिम? सेलेनियम वेबड्रायवर को तत्व पर क्लिक करने के लिए मजबूर कैसे करें, जो वर्तमान में दिखाई नहीं दे रहा है? इनलाइन तत्वों की चौड़ाई को निर्धारित करना जावास्क्रिप्ट का उपयोग कर छवि के रूप में एक बाइट सरणी प्रदर्शित करना

R: RCurl के साथ स्क्रैप किए गए वेब पेज से "क्लीन" यूटीएफ -8 पाठ निकालने के लिए

आर का उपयोग करते हुए, मैं एक वेब पेज को स्क्रैप करने की कोशिश कर रहा हूं जो एक फ़ाइल में पाठ को बचाता है, जो जापानी में है। अंततः इसे दैनिक आधार पर सैकड़ों पृष्ठों से निपटने के लिए स्केल किया जाना चाहिए। मुझे पहले से ही पर्ल में एक व्यावहारिक समाधान मिला है, लेकिन मैं कई भाषाओं के बीच स्विच करने के संज्ञानात्मक भार को कम करने के लिए स्क्रिप्ट को R में माइग्रेट करने का प्रयास कर रहा हूं। अब तक मैं सफल नहीं रहा हूं संबंधित प्रश्न यह सीएसवी फाइलों को सहेजने पर एक हो सकता है और यह एक हिब्रू को एक HTML फ़ाइल में लिखने पर है हालांकि, मैं जवाबों के आधार पर समाधान के साथ मिलकर काम करने में सफल नहीं हुआ हूं। संपादित करें: आर से यूटीएफ -8 आउटपुट पर यह प्रश्न भी प्रासंगिक है लेकिन इसका समाधान नहीं किया गया।

पेज याहू से हैं! जापान वित्त और मेरा पर्ल कोड जो इस तरह दिखता है।

use strict; use HTML::Tree; use LWP::Simple; #use Encode; use utf8; binmode STDOUT, ":utf8"; my @arr_links = (); $arr_links[1] = "http://stocks.finance.yahoo.co.jp/stocks/detail/?code=7203"; $arr_links[2] = "http://stocks.finance.yahoo.co.jp/stocks/detail/?code=7201"; foreach my $link (@arr_links){ $link =~ s/"//gi; print("$link\n"); my $content = get($link); my $tree = HTML::Tree->new(); $tree->parse($content); my $bar = $tree->as_text; open OUTFILE, ">>:utf8", join("","c:/", substr($link, -4),"_perl.txt") || die; print OUTFILE $bar; } 

यह पर्ल स्क्रिप्ट एक सीएसवी फ़ाइल उत्पन्न करता है जो नीचे दिए गए स्क्रीनशॉट की तरह दिखती है, उचित कांजी और काना के साथ जो कि ऑफ़लाइन खनन और छेड़छाड़ की जा सकती है:

सीएसवी फ़ाइल पर्ल स्क्रिप्ट द्वारा उत्पादित

मेरा आर कोड, जैसे कि यह निम्नलिखित की तरह दिखता है आर स्क्रिप्ट सिर्फ पर्ल समाधान का एक सटीक डुप्लिकेट नहीं है, क्योंकि यह एचटीएमएल को छूटे नहीं और पाठ छोड़ देता है ( यह उत्तर आर के उपयोग से एक दृष्टिकोण का सुझाव देता है लेकिन यह इस मामले में मेरे लिए काम नहीं करता है) और यह में लूप और इतने पर नहीं है, लेकिन इरादा एक ही है

 require(RCurl) require(XML) links <- list() links[1] <- "http://stocks.finance.yahoo.co.jp/stocks/detail/?code=7203" links[2] <- "http://stocks.finance.yahoo.co.jp/stocks/detail/?code=7201" txt <- getURL(links, .encoding = "UTF-8") Encoding(txt) <- "bytes" write.table(txt, "c:/geturl_r.txt", quote = FALSE, row.names = FALSE, sep = "\t", fileEncoding = "UTF-8") 

यह आर स्क्रिप्ट नीचे दिए गए स्क्रीनशॉट में दिखाए गए आउटपुट को उत्पन्न करता है। असल में बकवास

आर स्क्रिप्ट द्वारा उत्पादित सीएसवी फ़ाइल

मुझे लगता है कि एचटीएमएल, टेक्स्ट और फ़ाइल एन्कोडिंग का कुछ संयोजन है जो मुझे आर में उत्पन्न करने की अनुमति देगा, जो पर्ल समाधान के समान परिणाम था लेकिन मैं इसे नहीं खोज सकता। स्क्रैप करने के लिए मैं कोशिश कर रहा हूं एचटीएमएल पृष्ठ का शीर्षक बताता है कि चार्टसेट यूटीएफ -8 है और मैंने getURL कॉल में और एन्कोडिंग को write.table में write.table समारोह में सेट किया है, लेकिन यह केवल पर्याप्त नहीं है

प्रश्न मैं कैसे ऊपर दिए गए वेब पेज को आर का उपयोग कर स्क्रैप कर सकता हूं और पाठ को "अच्छी तरह से बनाई गई" जापानी पाठ में सीएसवी के रूप में सहेज सकता हूं, जो कि लाइन शोर की तरह लग रहा है?

संपादित करें: मैंने यह दिखाने के लिए एक और स्क्रीनशॉट जोड़ लिया है कि जब मैं Encoding चरण को छोड़ देता हूँ तो क्या होता है मुझे यूनिकोड कोड जैसा दिखता है, लेकिन वर्णों का चित्रमय प्रतिनिधित्व नहीं मिलता है यह किसी प्रकार की लोकेल-संबंधी समस्या हो सकती है, लेकिन सटीक समान लोकेल में पर्ल स्क्रिप्ट उपयोगी आउटपुट प्रदान करती है। तो यह अभी भी puzzling है मेरा सत्र जानकारी: आर संस्करण 2.15.0 पैच (2012-05-24 r59442) प्लेटफार्म: i386-pc-mingw32 / i386 (32-बिट) स्थान: 1 LC_COLLATE = अंग्रेज़ी_अमेरिका किंगडम.1252 2 LC_CTYPE = इंग्लिश_अंतिम किंगडम.1252
3 LC_MONETARY = इंग्लिश_अमेरिकी किंगडम.1252 4 एलसी_एनईएआरआईसीआर = सी
5 LC_TIME = इंग्लिश_अंतिम किंगडम.1252
संलग्न बेस संकुल: 1 आँकड़े ग्राफ़िक्स ग्रा डीवॉइसस utils डेटासेट विधि आधार

यहां छवि विवरण दर्ज करें

Solutions Collecting From Web of "R: RCurl के साथ स्क्रैप किए गए वेब पेज से "क्लीन" यूटीएफ -8 पाठ निकालने के लिए"

मुझे लगता है कि एक जवाब मिल गया है और कोई भी अभी तक पोस्ट नहीं किया है, इसलिए यहां चला जाता है।

इससे पहले @कोहस्की ने टिप्पणी की थी कि Encoding() कॉल को हटा दिए जाने के बाद कोड उसके लिए काम करता था। मुझे यह सोचने के लिए मिला कि वह शायद एक जापानी लोकेल है, जिसके बदले में यह सुझाव दिया कि मेरे मशीन पर एक लोकेल मुद्दा था जो किसी तरह आर को किसी तरह प्रभावित करता है – भले ही पेर्ल समस्या से बचा जाता है। मैंने अपनी खोज को पुनः प्राप्त कर लिया और एक यूटीएफ -8 फ़ाइल को सोर्सिंग करने पर यह सवाल पाया जिसमें मूल पोस्टर एक समान समस्या में चला था। जवाब में स्थानांतरित करना शामिल है। मैंने प्रयोग किया और पाया कि मेरा स्थान जापानी में बदलने से समस्या हल हो रही है, क्योंकि यह स्क्रीनशॉट दिखाता है:

अद्यतित आर कोड से आउटपुट

नवीनीकृत आर कोड निम्नानुसार है।

 require(RCurl) require(XML) links <- list() links[1] <- "http://stocks.finance.yahoo.co.jp/stocks/detail/?code=7203" links[2] <- "http://stocks.finance.yahoo.co.jp/stocks/detail/?code=7201" print(Sys.getlocale(category = "LC_CTYPE")) original_ctype <- Sys.getlocale(category = "LC_CTYPE") Sys.setlocale("LC_CTYPE","japanese") txt <- getURL(links, .encoding = "UTF-8") write.table(txt, "c:/geturl_r.txt", quote = FALSE, row.names = FALSE, sep = "\t", fileEncoding = "UTF-8") Sys.setlocale("LC_CTYPE", original_ctype) 

तो हमें कार्यक्रम के साथ स्थानीय स्तर पर गड़बड़ करना पड़ता है। सच कहूँ तो मैं थोड़ा शर्मिंदा हूं कि हमें वर्ष 2012 में विंडोज़ के लिए आर के लिए इस तरह के कहर की ज़रूरत है। जैसा कि मैंने ऊपर नोट किया है, पर्ल को विंडोज़ के समान संस्करण पर और उसी स्थान पर किसी भी तरह से मुद्दा मिल जाता है, बिना मुझे आवश्यकता के बिना मेरे सिस्टम सेटिंग्स को बदलने

ऊपर अद्यतन आर कोड का उत्पादन HTML है, ज़ाहिर है। दिलचस्पी रखने वालों के लिए, निम्नलिखित कोड HTML को बाहर निकालने और कच्चे टेक्स्ट को बचाने में काफी अच्छी तरह सफल होता है, हालांकि परिणाम की आवश्यकता के अनुसार बहुत अधिक जानकारी की आवश्यकता होती है।

 require(RCurl) require(XML) links <- list() links[1] <- "http://stocks.finance.yahoo.co.jp/stocks/detail/?code=7203" links[2] <- "http://stocks.finance.yahoo.co.jp/stocks/detail/?code=7201" print(Sys.getlocale(category = "LC_CTYPE")) original_ctype <- Sys.getlocale(category = "LC_CTYPE") Sys.setlocale("LC_CTYPE","japanese") txt <- getURL(links, .encoding = "UTF-8") myhtml <- htmlTreeParse(txt, useInternal = TRUE) cleantxt <- xpathApply(myhtml, "//body//text()[not(ancestor::script)][not(ancestor::style)][not(ancestor::noscript)]", xmlValue) write.table(cleantxt, "c:/geturl_r.txt", col.names = FALSE, quote = FALSE, row.names = FALSE, sep = "\t", fileEncoding = "UTF-8") Sys.setlocale("LC_CTYPE", original_ctype) 

नमस्ते मैंने एक स्क्रैपिंग इंजन लिखा है जो वेब पेजों पर डेटा की स्क्रैपिंग की अनुमति देता है जो मुख्य सूची पृष्ठ के भीतर गहराई से एम्बेड किए गए हैं। मुझे आश्चर्य है कि क्या यह आपके वेब डेटा के लिए आर में आयात करने से पहले एक एग्रीगेटर के रूप में उपयोग करने में सहायक हो सकता है?

इंजन का स्थान यहां है http://ec2-204-236-207-28.com पाट 1.amazonaws.com/scrap-gm

आपके द्वारा दिये गये पृष्ठ को स्क्रैप करने के लिए मैंने जो नमूना पैरामीटर बनाया है वह नीचे है

 { origin_url: 'http://stocks.finance.yahoo.co.jp/stocks/detail/?code=7203', columns: [ { col_name: 'links_name', dom_query: 'a' }, { col_name: 'links', dom_query: 'a' , required_attribute: 'href' }] };