के साथ स्क्रैप किए गए वेब पेज से "साफ" यूटीएफ -8 टेक्स्ट निकालने, आर का उपयोग करके, मैं एक वेब पेज को टेक्स्ट में सहेजने की कोशिश कर रहा हूं, जो जापानी में है, फाइल में। आखिरकार इसे सैकड़ों पृष्ठों से निपटने के लिए दैनिक आधार पर स्केल किया जाना चाहिए। मेरे पास पर्ल में पहले से ही एक व्यावहारिक समाधान है, लेकिन मैं कई भाषाओं के बीच स्विचिंग के संज्ञानात्मक भार को कम करने के लिए स्क्रिप्ट को आर में माइग्रेट करने का प्रयास कर रहा हूं। अब तक मैं सफल नहीं हूं। संबंधित प्रश्न this one on saving csv files और this one on writing Hebrew to a HTML file प्रतीत होते हैं। हालांकि, मैं वहां जवाबों के आधार पर एक समाधान को इकट्ठा करने में सफल नहीं रहा हूं। संपादित करें: this question on UTF-8 output from R is also relevant but was not resolved.आर: RCurl
पृष्ठ याहू से हैं! जापान वित्त और मेरा पर्ल कोड जो इस तरह दिखता है। इस तरह के रूप में,
मेरे आर कोड:
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;
}
यह पर्ल स्क्रिप्ट एक CSV फ़ाइल को नीचे स्क्रीनशॉट की तरह दिखता है, उचित कांजी और काना के साथ कि खनन और चालाकी से ऑफ़लाइन किया जा सकता है का उत्पादन है, निम्नलिखित की तरह दिखता है। आर स्क्रिप्ट सिर्फ पर्ल समाधान का सटीक डुप्लिकेट नहीं है, क्योंकि यह HTML को नहीं हटाता है और टेक्स्ट छोड़ देता है (this answer आर का उपयोग करके एक दृष्टिकोण सुझाता है लेकिन यह इस मामले में मेरे लिए काम नहीं करता है) और यह नहीं करता लूप और इतने पर नहीं है, लेकिन इरादा वही है।
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")
यह आर स्क्रिप्ट नीचे दिए गए स्क्रीनशॉट में दिखाए गए आउटपुट को उत्पन्न करता है। मूल रूप से बकवास।
मुझे लगता है कि मुझे आर में पर्ल समाधान की है कि एक समान परिणाम उत्पन्न करने के लिए अनुमति देगा एचटीएमएल, पाठ और फ़ाइल एन्कोडिंग के कुछ संयोजन है कि वहाँ लेकिन मैं यह नहीं मिल सकता है। HTML पृष्ठ का शीर्षलेख जिसे मैं स्क्रैप करने का प्रयास कर रहा हूं, कहता है कि चार्टसेट utf-8 है और मैंने getURL
कॉल में और write.table
फ़ंक्शन में utf-8 में एन्कोडिंग सेट की है, लेकिन यह अकेला नहीं है।
सवाल कैसे मैं ऊपर वेब पेज आर का उपयोग कर स्क्रैप और "अच्छी तरह से गठित" जापानी के बजाय पाठ कुछ है कि लाइन शोर की तरह लग रहा में सीएसवी के रूप में पाठ को बचा सकता है?
संपादित करें: मैंने यह दिखाने के लिए एक और स्क्रीनशॉट जोड़ा है कि जब मैं Encoding
चरण छोड़ देता हूं तो क्या होता है। मुझे यूनिकोड कोड की तरह दिखता है, लेकिन वर्णों का ग्राफिकल प्रतिनिधित्व नहीं। यह किसी प्रकार का लोकेल से संबंधित मुद्दा हो सकता है, लेकिन उसी लोकेल में पर्ल स्क्रिप्ट उपयोगी आउटपुट प्रदान करती है। तो यह अभी भी परेशान है। मेरे सत्र जानकारी: आर संस्करण 2.15.0 समझौता (2012-05-24 r59442) प्लेटफार्म: i386-पीसी-mingw32/i386 (32-बिट) स्थान: 1 LC_COLLATE = English_United Kingdom.1252 2 LC_CTYPE = English_United Kingdom.1252
3 LC_MONETARY = English_United Kingdom.1252 4 LC_NUMERIC = सी
5 LC_TIME = English_United किंगडम।1252
संलग्न आधार संकुल: 1 आँकड़े ग्राफिक्स grDevices utils डेटासेट तरीकों आधार
शायद आपको 'एन्कोडिंग (txt) <- "बाइट्स" की आवश्यकता नहीं है और यह मेरे पर्यावरण में अच्छी तरह से काम करता है। – kohske
@kohske, इस सुझाव के लिए धन्यवाद। मेरे पास 'एन्कोडिंग() 'के बिना एक और प्रयास था; दुर्भाग्य से मैं असफल रहा। – SlowLearner