我正在尝试在以下网页中获取大表的内容:http ://www.basketball-reference.com/players/j/jamesle01/gamelog/2013/ 。然后我想将内容保存到电子表格中。所有这些都将在 Perl 中完成。我不太确定如何进行此操作。任何帮助将不胜感激。
另外,如果您查看大表上方,您可以单击 CSV,我相信(可能?)这将使我更容易获取表格数据并将其放入 Excel 电子表格。对此有何建议?
谢谢
如果可以获取 CSV 格式的数据,则可以直接在 Excel 中打开,无需转换。
解析 HTML 很棘手且容易出错,因为构成有效 HTML 的内容可能非常难看。
如果您确实需要编写 XLS 文件,则在读取 CSV 后(例如,通过使用Text::CSV ),您可以使用Spreadsheet::WriteExcel之类的东西写入二进制 XLS 文件格式
请注意,我之前使用过Text::CSV ——这很合理。我没有使用WriteExcel的经验。
在本地获得 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";
}