相关疑难解决方法(0)

R:从用RCurl抓取的网页中提取"干净"的UTF-8文本

使用R,我试图刮一个网页,将日文文本保存到文件中.最终,这需要扩展到每天处理数百页.我已经在Perl中有一个可行的解决方案,但我正在尝试将脚本迁移到R以减少在多种语言之间切换的认知负荷.到目前为止,我没有成功.相关的问题似乎是关于保存csv文件将此希伯来文写入HTML文件的问题.但是,我没有成功地根据那里的答案拼凑出一个解决方案.编辑:关于R的UTF-8输出的这个问题也是相关的但是没有解决.

这些页面来自Yahoo! 日本财务和我的Perl代码看起来像这样.

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;
}
Run Code Online (Sandbox Code Playgroud)

此Perl脚本生成一个类似于下面屏幕截图的CSV文件,其中包含可以离线挖掘和操作的正确的汉字和假名:

Perl脚本生成的CSV文件

我的R代码,如下所示,如下所示.R脚本与刚刚给出的Perl解决方案不完全相同,因为它不会删除HTML并留下文本(这个答案暗示了一种使用R的方法,但在这种情况下它对我不起作用)并且它没有循环等等,但意图是一样的.

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 …
Run Code Online (Sandbox Code Playgroud)

r web-scraping rcurl

15
推荐指数
1
解决办法
5124
查看次数

从 R 导出阿拉伯语文本

我正在尝试在 R 中导出带有阿拉伯语文本的数据框。

当 R 导入阿拉伯文本时,它会将其转换为 UTF-8 代码。像这样:

     <U+0627><U+0644><U+0641><U+0631><U+0639> <U+0627><U+0644><U+062A><U+0634><U+0631><U+064A><U+0639><U+064A><U+060C> <U+0627><U+0644><U+0641><U+0631><U+0639> <U+0627><U+0644><U+062A><U+0646><U+0641><U+064A><U+0630><U+064A><U+060C><U+0627><U+0644><U+0641><U+0631><U+0639> <U+0627><U+0644><U+0642><U+0636><U+0627><U+0626><U+064A>. <U+0627><U+0644><U+062D><U+0643><U+0648><U+0645><U+0629> <U+0627><U+0644><U+0641><U+062F><U+0631><U+0627><U+0644><U+064A>
Run Code Online (Sandbox Code Playgroud)

不幸的是,导出时我无法让它变回可读的阿拉伯语。下面是我正在使用的代码...

    write.csv(my.data,"data.csv", fileEncoding='UTF-8') 
Run Code Online (Sandbox Code Playgroud)

有人有解决方案吗?

另外,这是我的会话信息。

R version 3.0.1 (2013-05-16)
Platform: x86_64-w64-mingw32/x64 (64-bit)

locale:
[1] LC_COLLATE=English_United States.1252  LC_CTYPE=English_United States.1252   
[3] LC_MONETARY=English_United States.1252 LC_NUMERIC=C                          
[5] LC_TIME=English_United States.1252    

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] ggplot2_0.9.3.1

loaded via a namespace (and not attached):
[1] colorspace_1.2-2   dichromat_2.0-0    digest_0.6.3       grid_3.0.1   gtable_0.1.2      
[6] labeling_0.2       MASS_7.3-27        munsell_0.4.2      plyr_1.8           proto_0.3-10      
[11] RColorBrewer_1.0-5 reshape2_1.2.2     scales_0.2.3       stringr_0.6.2 …
Run Code Online (Sandbox Code Playgroud)

encoding r utf-8 arabic rstudio

1
推荐指数
1
解决办法
2571
查看次数

标签 统计

r ×2

arabic ×1

encoding ×1

rcurl ×1

rstudio ×1

utf-8 ×1

web-scraping ×1