我有一个Perl程序,它使用shell的wget
命令从web获取语料库。使用lynx -dump
命令从HTML中提取数据时,从命令提示符处可以正常工作。但是,当我想从浏览器运行相同的程序时,文件中的kannada文本不会从文件中提取。我只能得到英文文本。我的程序是这样的
#!/usr/bin/perl
print "Content-Type:text/html;
charset=utf-8\n\n";
use CGI;
use Cwd;
my $ftpname="www.kuvempu.com";
chomp($ftpname);
system("wget --mirror -p --convert-links -x --reject=gif $ftpname");
print("please wait a while data has been downloding");
system("rm -rf $ftpname/en");
system("rm -rf $ftpname/images");
system("rm -rf $ftpname/source");
my @files = glob("$ftpname/*");
foreach my $f(@files) {
system("lynx -dump $f > $f.txt");
}
open fp,">>$ftpname-text-file" || die "coun't noe create $ftpname-text-file";
my @outfiles=glob("$ftpname/*.txt");
foreach my $f1(@outfiles) {
open(aaa,"<$f1"); print fp <aaa>; close(aaa);
}
close(fp);
system("grep -v http $ftpname-text-file > a");
system("grep -v file a > b");
system("sed -e 's/[a-zA-Z]//g' b > c");
system("egrep -v -x '.{1,10}' c > d");
system("grep -v '\]' d > e");
system("grep -v '©' e > f");
system("grep -v '[0-9] - [0-9]' f > g");
system("sed 's/^ //g' g > h");
system("sed 's/^-//g' h > i");
答案 0 :(得分:1)
您有print "Content-Type:text/html;
然后use CGI;
,您从不使用CGI。要么不加载它,要么正确使用它。
use CGI;
my $q = $CGI->new();
print $q->header();
你的脚本的其余部分只是一堆系统调用。调试系统调用或在Perl中编写。