您好,匿名用户
随意问技术百科期待您的加入

弄了一个新闻阅读器可是无法运行,python3.3报错但是不提示错在哪,求解

0 投票
>>from nntplib import NNTP
from time import strftime,time,localtime
from email import message_from_string
from urllib.request import urlopen
import textwrap
import re
day=24*60*60
def wrap(string,max=70):
    return '\n'.join(textwrap.wrap(string))+'\n'
class NewsAgent:
    def _init_(self):
	self.sources = []
	self.destinations = []
    def addSource(self,source):
	self.sourcess.append(source)
    def addDestination(self,dest):
        self.destinations.append(dest)
    def distribute(self):
        items = []
        for source in self.sources:
            items.extend(source.getItems())
        for dest in self.destinations:
            dest.receiveItems(item)
class NewsItem:
    def _init_(self,title,body):
        self.title = title
        self.body = body
class NNTPSource
    def _init_(self,servername,group,window);
        self.servername = servername
        self.group = group
        self.window = window
    def getItems(self)
        start = local(time() - self.window*day)
        date = strftime('%y%m%d',start)
        hour = strftime('%H%M%S',start)

        server = NNTP(self.servername)

        ids = server.newnews(self.group,date,hour)[1]

        for id in ids:
            lines = server.article(id)[3]
            message = massage_from_string('\n'.join(lines))

            titile = message['subject']
            body = message.get_payload()
            if message.is_multipart():
                body = body[0]

            yield NewsItem(title,body)
        server.quit()
class SimpleWebSource
    def _init_(self,url,titilePattern,bodyPattern):
         self.url = url
        self.titlePattern = re.compile(titlePattern)
        self.bodypattern = re.compile(body)
    def getItems(self):
        text = urlopen(self.url).read()
        titles = self.titilePattern.findall(text)
        bodies = self.bodyPattern.findall(text)
        for title,body in zip(titles,bodies):
            yield NewsItem(titile,wrap(body))
class PlainDestination:
    def receiveItems(self,items):
        for item in items:
            print item.title
            print '-'*len(item.title)
            print item.body
class HTMLDestination:
    def _init_(self,filename):
        self.filename = filename
    def receiveItems(self,items):
        out = open(self.filename,'w')
            print >> out,"""
            <html>
             <head>
              <title>Today's News</title>
             </head>
             <body>
             <h1>Today's News</h1>
            """
            print >> out, '<ul>'
            id = 0
            for item in items:
                id += 1
                print >> out, '<li><a href="#%i">%s</a></li>'%(id.item.title)
            print >> out, '</ul>'

            id = 0
            for item in items:
                id += 1
                print >> out, '<h2><a name="%i">%s</a></h2>'%(id.item.title)
                print >> out, '<pre>%s</pre>'%item.body

            print >> out,"""
             </body>
             </html>
             """
    def runDefaultSetip()
        agent = NewsAgent()
        163_url = 'http://www.163.com/rss'
        163_title = r'(?s)a href="[^"]*">\s*<b>\s*(.*?)\s*</b>'
        163_body = r'(?s)</a>\s*<br />\s*(.*?)\s*<'
        163 = SimpleWebSource(163_url,163_title,163_body)

        agent.addSource(163)

        clpa_server = 'news.foo.bar'
        clpa_group = 'comp.lang.python.announce'
        clpa_window = 1
        clpa = NNTPSSource(clpa_server,clpa_group,clpa_window)

        agent.addSource(clpa)

        agent.addDestination(PlainDestination())
        agent.addDestination(HTMLDestination('news.html'))

        agent.distribute()
    if _name_ == '_main_': runDefaultSetup()
用户头像 提问 2012年 12月1日 @ Tryndamere 上等兵 (325 威望)
分享到:

你的回答

隐私保护: 您的邮箱仅用于发送系统通知。
请输入验证码:
    图片验证码看不清?
登录注册后不会被要求输入验证码。

提一个问题:

相关问题

+1 投票
1 回复 35 阅读
0 投票
1 回复 27 阅读
用户头像 提问 2012年 12月1日 @ Renekton 上等兵 (260 威望)
0 投票
1 回复 30 阅读
+2 投票
1 回复 64 阅读
+3 投票
1 回复 53 阅读
用户头像 提问 2013年 1月6日 @ Zed 上等兵 (260 威望)

欢迎来到随意问技术百科, 这是一个面向专业开发者的IT问答网站,提供途径助开发者查找IT技术方案,解决程序bug和网站运维难题等。
温馨提示:本网站禁止用户发布与IT技术无关的、粗浅的、毫无意义的或者违法国家法规的等不合理内容,谢谢支持。

欢迎访问随意问技术百科,为了给您提供更好的服务,请及时反馈您的意见。
...