Javascript 如何使用Perl'提取网站的XML并保存到文件中;什么是LWP?
如何从网站()提取信息,然后从中创建XML文件?我想保存它以便以后解析并使用JavaScript显示信息Javascript 如何使用Perl'提取网站的XML并保存到文件中;什么是LWP?,javascript,xml,perl,extract,lwp,Javascript,Xml,Perl,Extract,Lwp,如何从网站()提取信息,然后从中创建XML文件?我想保存它以便以后解析并使用JavaScript显示信息 我对Perl非常陌生,不知道如何使用它。当然。最简单的方法是模块。它的作用是让您定义由 散列键名称 查找感兴趣元素的XPath表达式 以及从中提取数据位的代码 Scraper对象获取URL并返回提取数据的散列。如果需要,每个键的提取器代码本身可以是另一个scraper对象,这样您就可以定义如何刮取重复的复合页面元素:提供XPath以在外部scraper中查找复合元素,然后提供更多XPath以
我对Perl非常陌生,不知道如何使用它。当然。最简单的方法是模块。它的作用是让您定义由
使用XMLTV;
)如果要将信息传递给Javascript,请使用Javascript对象表示法(JSON)而不是XML。有很多Perl库,例如,可以为您处理这些问题。tv.yahoo.com不是很有语义,也不太容易获取!它们可能是更好的替代品或饲料 使用pQuery,我可以快速获取时间和节目
use pQuery;
pQuery( 'http://tv.yahoo.com/listings' )
->find( '.show' )->each(
sub {
my $n = shift;
my $pQ = pQuery( $_ );
say $pQ->text;
}
);
# => 4:00pm - 6:30pm Local Programming
为了更详细地了解细节,你可以试试这个
use pQuery;
my @tv_progs;
pQuery( 'http://tv.yahoo.com/listings' )
->find( 'li div strong' )->each(
sub {
my $n = shift;
my $pQ = pQuery( $_ );
$tv_progs[ $n ]->{ time } = $pQ->text;
}
)
->end
->find( '.showTitle' )->each(
sub {
my $n = shift;
my $pQ = pQuery( $_ );
$tv_progs[ $n ]->{ name } = $pQ->text;
}
);
for my $prog ( @tv_progs ) {
say $prog->{name} . " @ " . $prog->{time};
}
# => Local Programming @ 4:00pm - 6:30pm
为了获得频道
use pQuery;
pQuery( 'http://tv.yahoo.com/listings' )
->find( '.chhdr a' )->each(
sub {
my $n = shift;
my $pQ = pQuery( $_ );
say $pQ->text;
}
);
# => ABC
但是,将后台频道与节目信息进行匹配需要一些工作;-) 另请参见[是我的德语谈论Web::Scraper.自动翻译:[你真的想推荐这种beta版模块吗?beta版,真的吗?它是LWP、HTML::TreeBuilder和HTML::Selector::XPath组合的粘合剂,所有这些都是经过战斗测试的生产质量模块。不过,如果你喜欢编写样板文件,那就随你的便吧……我还没有尝试过,所以我可能会得出结论。但作者指出“此模块的测试版质量。API是从SCRAPI偷来的,但将来可能会更改”