简单的rss阅读工具

简单的rss阅读工具,第1张

概述简单的rss阅读工具

下面是内存溢出 jb51.cc 通过网络收集整理的代码片段。

内存溢出小编现在分享给大家,也给大家做个参考。

#!usr/bin/env python# -*- Coding:UTF-8 -*-import refrom lxml import etreefrom bs4 import BeautifulSoup as spimport requestsimport urllib2import StringIOimport sysreload(sys)sys.setdefaultencoding("utf-8")headers={'User-Agent' : 'Mozilla/4.0 (compatible; MSIE 5.5; windows NT)'}def urlread(url):    try:        req=requests.get(url,headers=headers)        req.enCoding="utf-8"        return req.text.encode("utf-8")    except:         req=urllib2.Request(url,headers=headers)        response=urllib2.urlopen(req)        return response.read().encode("utf-8")             class Item:    def __init__(self,Title,link,date,description):        self.Title=Title.strip()        self.link=link.strip()        self.pubDate=date.strip()        self.decription=self.filter(description).strip()            def filter(self,description):        description=re.sub("<.*?>",'',description)        description=re.sub("\r",description)        description=re.sub("\n",description)        description=re.sub("&nbsp;"," ",description)        if len(description)>240:            description=description[:240]+'...'        return description            def __str__(self):        return "%s\n%s\n%s\n<%s>\n" % (                self.Title,self.link,self.decription,self.pubDate                )             __repr__=__str__    class BSParser(object):    #url=''    def __init__(self,url):        xml=urlread(url)        self.reset(xml)            def reset(self,xml=None):        if xml==None:            self.soup=sp("<xml> </xml>")        else:            self.soup=sp(xml,"xml")    def callback(self,method,obj,Tags):        rst=None        attr=method.lower()        for tag in Tags:            try:                rst=getattr(obj,attr)(tag)            except:                continue            if rst:                break        return rst    def getfIElds(self,Tags=["item",'entry']):        return self.callback(method="FIND_ALL",obj=self.soup,Tags=Tags)                def getTitle(self,Tags=["Title"]):        return self.callback("FIND",Tags).text            def getlink(self,Tags=["link"]):              rst=self.callback("FIND",Tags).text        if not rst:                       rst=self.callback("FIND",Tags).get("href")        return rst            def getdate(self,Tags=["pubDate","published"]):        return self.callback("FIND",Tags).text            def getdescription(self,Tags=["description","content"]):                return self.callback("FIND",Tags).text        def run(self):        for item in self.getfIElds():            Title=self.getTitle(item)            link=self.getlink(item)            date=self.getdate(item)            description=self.getdescription(item)            newsitem=Item(Title,description)            yIEld newsitemdef test():    parser=Parser()    for item in parser.run():        print item        if __name__=="__main__":    test()

以上是内存溢出(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

总结

以上是内存溢出为你收集整理的简单的rss阅读工具全部内容,希望文章能够帮你解决简单的rss阅读工具所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1198509.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存