下面是内存溢出 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(" "," ",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阅读工具所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)