我正在尝试获取以下网页中的大表的内容:http://www.basketball-reference.com/players/j/jamesle01/gamelog/2013/。 我想将内容保存到电子表格中。所有这些都是在Perl中完成的。 我真的不确定如何继续这个。任何帮助将不胜感激。
另外,如果你看一下大表,你可以点击CSV,我相信(可能?)会让我更容易获取表数据并将其放入Excel电子表格中。对此有何建议?
由于
答案 0 :(得分:1)
如果您可以将数据作为CSV格式获取,则可以直接在Excel中打开它,无需转换。
解析HTML很棘手且容易出错,因为构成有效HTML的内容可能非常难看。
如果确实需要编写XLS文件,在阅读CSV之后(例如,使用Text::CSV),您可以使用类似{的内容写入二进制XLS文件格式{3}}
注意,我之前使用过Spreadsheet::WriteExcel - 这很合理。我没有使用Text::CSV的经验。
答案 1 :(得分:1)
在本地获得HTML文件后,您可以使用HTML::TableExtract对其进行解析,并将制表符分隔文件导入Excel:
#!/usr/bin/env perl
use utf8;
use v5.12;
use strict;
use warnings;
use warnings qw(FATAL utf8);
use open qw(:std :utf8);
# see http://www.perl.com/pub/2012/04/perlunicook-standard-preamble.html
use File::Slurp qw( read_file );
use HTML::TableExtract;
my $content = read_file 'index.html', binmode => ':utf8';
my $te = HTML::TableExtract->new(attribs => {id => 'pgl_basic'});
$te->parse($content);
my ($table) = $te->tables;
for my $row ($table->rows) {
next if $row->[0] eq 'Rk';
print join("\t", map { defined($_) ? $_ : '' } @$row), "\n";
}