Linux下perl编程读取rss文件(以优快云和yahoo为例)

本文介绍了如何在Red Hat Linux 9.0环境下使用Perl语言抓取并解析RSS订阅源,涉及LWP::Simple和XML::RSS模块的安装与使用,并提供了具体的代码实现。

先让大家看看效果吧:
yahoo news : http://thefirstwind.ddo.jp/~devuser/cgi-bin/yahoonews.pl
csdn personal blog : http://thefirstwind.ddo.jp/~devuser/cgi-bin/csdnblog_thefirstwind.pl

1 首先是前期的准备

    编程环境: RedHat Linux 9.0     perl v5.8.8 
    软件包: LWP::Simple ,use XML::RSS; 

    为了配好适合的软件环境,可是花了一番的功夫,
    因为redhat linux 9.0 默认的perl版本下,安装以上的module总是不成功,
    最后仔细琢磨了一番,终于安装好了两个必要的module.大体步骤如下:

1.1安装perl5.8.8
    #wget http://search.cpan.org/CPAN/authors/id/N/NW/NWCLARK/perl-5.8.8.tar.gz
    #tar -zxvf perl-5.8.8.tar.gz
    然后进入perl-5.8.8的目录,去读INSTALL,安装好新的perl

1.2安装必要的module

    #perl -MCPAN -e shell
    初始化配置参考http://www.omakase.org/perl_module.htm 

    常用module安装(可选)
    cpan> install XML::XPath
    cpan> install SOAP::Lite
    cpan> install Jcode
    cpan> install DB_File
    cpan> install DBI
    cpan> install DBD::mysql
    cpan> install Bundle::LWP
    cpan> install Bundle::CPAN
    cpan> install CGI
    cpan> install HTML::Entities
    cpan> install Mail::Internet
    cpan> install Pod::Text
    cpan> install Bundle::XML   
    虽然可能在这里面的操作中,会出现error但是,毕竟装了不少,对以后安装会有好处的。

    本功能必备安装(如果上面常用安装已经执行过了,这一步,只是起到确认左右)
    cpan> install XML::RSS

    从新挂载cpan服务
    cpan> reload cpan


2. 相关rss文件 和 perl 相关model  简单介绍

2.1 rss文件
在这里就是简单的介绍一下主要的几条语言,首先是要了解,几个常用的大网站提供的rss的结构,
我就不多说了,自己看看就可以了,如果对于XML文档结构不是很了解,去w3c school补补课吧。
这里仅仅给出相关的几个rss文件的地址,提供下载研究:
yahoo news :  http://rss.news.yahoo.com/rss/topstories   (经测试,本代码中应用成功)
csdn personal blog : http://blog.youkuaiyun.com/thefirstwind/Rss.aspx  (经测试,本代码中应用成功)

2.2 LWP::Simple 和 XML::RSS 组合模块代码1

use  LWP :: Simple;
use  XML :: RSS;

my   $url   =   ' http://blog.youkuaiyun.com/thefirstwind/Rss.aspx ' ;
my   $data_from_web   =  get( $url );

my   $rss   =  new XML :: RSS;


$rss -> parse( $data_from_web );

2.3LWP::Simple 和 XML::RSS 组合模块代码2

use  LWP :: Simple;
use  XML :: RSS;

my   $url           =   ' http://blog.youkuaiyun.com/thefirstwind/Rss.aspx ' ;
my   $file          =   ' ./csdnblog_thefirstwind.rss ' ;

mirror(
$url ,   $file );

my   $rss   =  new XML :: RSS;
$rss -> parsefile( $file );

以上两种方法都可以,从现在开始$rss存有rss/xml文件的所有信息了,以后对其下面的节点,直接->{'节点名'},
如此引用就可以了。



3 代码实例 


好了说了那么多废话,终于要看看代码了。

# !/usr/local/bin/p
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值