gofeed 强大的提要解析器开源项目

我要开发同款
匿名用户2021年11月24日
75阅读
开发技术GO语言
所属分类Google Go、RSS/ATOM相关、Web应用开发
授权协议MIT

作品详情

gofeed库是一个强大的提要(feed)解析器,支持解析 RSS、Atom 和 JSON 提要。该库提供了一个通用模型gofeed.Parser,它可以解析所有提要类型,并将其转换为混合gofeed.Feed模型。

gofeed库由一个通用提要解析器 gofeed.Parser和几个特定类型解析器(rss.Parser 、atom.Parser、json.Parser)

如果要同时处理rss、atom和json提要,那么使用gofeed.Parser,如果只解析一种提要类型,就使用对应的解析器。

 

gofeed会尽最大努力解析损坏的和无效的XML提要。目前,gofeed可以成功解析具有以下问题的提要:

提要元素中的未转义/裸标记未声明的命名空间前缀某些元素上缺少结束标记没有命名空间前缀的提要元素中的非法标签缺少相应提要规范指定的“必需”元素。日期格式不正确支持的提要类型RSS0.90NetscapeRSS0.91UserlandRSS0.91RSS0.92RSS0.93RSS0.94RSS1.0RSS2.0Atom0.3Atom1.0JSON1.0JSON1.1基本用法通用源解析器最常见的使用场景是用于gofeed.Parser将任意RSS或Atom或JSON提要解析到混合gofeed.Feed模型中。这种混合模型允许您以相同的方式处理RSS、Atom和JSON提要。

从URL解析提要:

fp:=gofeed。NewParser()feed,_:=fp。ParseURL("https://feeds.twit.tv/twit.xml")fmt。Println(feed.Title)

从字符串解析提要:

feedData:=`<rssversion="2.0"><channel><title>SampleFeed</title></channel></rss>`fp:=gofeed。NewParser()feed,_:=fp。ParseString(feedData)fmt。Println(feed.Title)

从  io.Reader解析:

file,_:=os.Open("/path/to/a/file.xml")deferfile.Close()fp:=gofeed.NewParser()feed,_:=fp.Parse(file)fmt.Println(feed.Title)

解析一个超时60秒的URL:

ctx,cancel:=context.WithTimeout(context.Background(),60*time.Second)defercancel()fp:=gofeed.NewParser()feed,_:=fp.ParseURLWithContext("https://feeds.twit.tv/twit.xml",ctx)fmt.Println(feed.Title)

使用自定义的User-Agent从URL解析提要:

fp:=gofeed.NewParser()fp.UserAgent="MyCustomAgent1.0"feed,_:=fp.ParseURL("https://feeds.twit.tv/twit.xml")fmt.Println(feed.Title)
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论