栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > 其他 > xml语言

分享一个简单的rss阅读工具

xml语言 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

分享一个简单的rss阅读工具

#!usr/bin/env python# -*- coding:UTF-8 -*- import refrom lxml import etreefrom bs4 import BeautifulSoup as spimport requestsimport urllib2import StringIO import 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(" "," ",description)        if len(description)>240:            description=description[:240]+'...'        return description            def __str__(self):        return "%sn%sn%sn<%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(" ")        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,obj,tags=["title"]):        return self.callback("FIND",obj,tags).text             def getlink(self,obj,tags=["link"]):             rst=self.callback("FIND",obj,tags).text        if not rst:                      rst=self.callback("FIND",obj,tags).get("href")        return rst             def getdate(self,obj,tags=["pubDate","published"]):        return self.callback("FIND",obj,tags).text             def getdescription(self,obj,tags=["description","content"]):               return self.callback("FIND",obj,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,link,date,description)            yield newsitem def test():    parser=Parser()    for item in parser.run():        print item         if __name__=="__main__":    test()

以上就是分享一个简单的rss阅读工具的详细内容,更多请关注考高分网其它相关文章!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/794322.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号