我需要一个子程序,它应该解析传递给它的任何RSS源。我曾经使用过XML :: RSS:Parser已经有一些RSS feed,但它不适用于Facebook。XML :: RSS ::解析器和Facebook RSS源...
示例代码:
use LWP::Simple;
use XML::RSS::Parser;
my $url = join '', @ARGV;
die "No URL passed" if !$url;
# facebook does not accept default LWP user agent
my $ua = LWP::UserAgent->new(agent => 'iGoogleBot');
my $res = $ua->get($url);
my $content = $res->decoded_content;
my $parser = XML::RSS::Parser->new;
my $feed = $parser->parse_string($content) or die $parser->errstr;
print "COUNT: ".$feed->item_count."\n";
与有线Facebook的结果提要
[email protected]:/tmp$ ./rss.pl 'https://www.facebook.com/feeds/page.php?id=19440638720&format=atom10'
Can't call method "contents" on an undefined value at /usr/local/share/perl/5.10.1/XML/RSS/Parser.pm line 122.
我认为,XML :: RSS ::解析器不从根元素得到正确的命名空间,之后没有任何作品。想法如何解决这个问题?
我可以使用XML :: Simple或类似的东西解析Facebook的RSS,但我想要一个解析器的所有rss提要。
我打算绕过XML/RSS/Parser.pm找到原因,但它不是解决方案,只能更改为facebook包。而这个Facebook饲料在Android rss阅读器中运行良好。
当然,您可以更改useragent名称,而不意味着您与Google有关? – Quentin
这只是测试代码。感谢对我的问题的贡献;-) – user1075334