我正在尝试下载一个网页;然后使用regex对其进行分析;然后获取regex发现的文件。我有两个问题:
(1)我使用wget
下载网页和文件,使用下面这行代码
my $webPage = "onePage";
my $result = run <<wget -O $webPage $aSite>>, :out, :err;
其中,$webPage
是wget
的输出文件。问:有没有等同于wget的perl6?我使用了perl6网站上的模块URI::FetchFile
;它获取了一些文件,但无法获取网页。
(2) wget下载的$webPage有时包含格式错误的UTF-8字符,导致我的程序崩溃。当我这样做的时候
cat onePage
在shell中,这些格式错误的UTF-8字符显示为blob,此命令会导致与我的程序相同的错误:
cat onePage | perl6 -ne '.say;'
而perl6的错误输出是
Malformed UTF-8
in block <unit> at -e line 1
在终端或shell上,格式错误的UTF-8字符之一显示为blob,如下所示:
h�lt
如果我尝试删除非打印字符,那么结果是我错过了大量指向文件的链接:
$tmpLine ~~ s/<-[print]>//; # this causes my program to miss many files
如何最好地处理这些格式错误的UTF-8字符,或者任何格式错误的unicodes,甚至是格式错误的控制字符?
发布于 2018-06-04 15:11:30
有没有等同于wget的perl6?
有几个。HTTP::Agent
现在被认为是更新的,但您也可以使用LWP::Simple
。
如何最好地处理这些格式错误的UTF-8字符或任何格式错误的unicodes,甚至是格式错误的控制字符?
您可能希望尝试UTF8-C8
编码。但是,如果您直接从perl6程序获取页面,这可能不是问题。
然而,崩溃是完全不同的事情。最好的方法是创建一个Rakudo issue
https://stackoverflow.com/questions/50674498
复制相似问题