<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        python做出新聞聚合項目

        來源:懂視網 責編:小采 時間:2020-11-27 14:22:15
        文檔

        python做出新聞聚合項目

        python做出新聞聚合項目:這次給大家帶來python做出新聞聚合項目,python做出新聞聚合項目的注意事項有哪些,下面就是實戰案例,一起來看一下。先上代碼,然后再來逐一分析:from nntplib import NNTP from time import strftime,time,localtime from em
        推薦度:
        導讀python做出新聞聚合項目:這次給大家帶來python做出新聞聚合項目,python做出新聞聚合項目的注意事項有哪些,下面就是實戰案例,一起來看一下。先上代碼,然后再來逐一分析:from nntplib import NNTP from time import strftime,time,localtime from em

        這次給大家帶來python做出新聞聚合項目,python做出新聞聚合項目的注意事項有哪些,下面就是實戰案例,一起來看一下。

        先上代碼,然后再來逐一分析:

        from nntplib import NNTP
        from time import strftime,time,localtime
        from email import message_from_string
        from urllib import urlopen
        import textwrap
        import re
        day = 24*60*60
        def wrap(string,max=70):
         '''
         '''
         return '
        '.join(textwrap.wrap(string)) + '
        '
        class NewsAgent:
         '''
         '''
         def init(self):
         self.sources = []
         self.destinations = []
         def addSource(self,source):
         self.sources.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(items)
        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 = localtime(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 = message_from_string('
        '.join(lines))
         title = 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,titlePattern,bodyPattern):
         self.url = url
         self.titlePattern = re.compile(titlePattern)
         self.bodyPattern = re.compile(bodyPattern)
         def getItems(self):
         text = urlopen(self.url).read()
         titles = self.titlePattern.findall(text)
         bodies = self.bodyPattern.findall(text)
         for title.body in zip(titles,bodies):
         yield NewsItem(title,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</hi>
         '''
         print >> out, '<ul>'
         id = 0
         for item in items:
         id += 1
         print >> out, '<li><a href="#" rel="external nofollow" >%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 runDefaultSetup():
         agent = NewsAgent()
         bbc_url = 'http://news.bbc.co.uk/text_only.stm'
         bbc_title = r'(?s)a href="[^" rel="external nofollow" ]*">s*<b>s*(.*?)s*</b>'
         bbc_body = r'(?s)</a>s*<br/>s*(.*?)s*<'
         bbc = SimpleWebSource(bbc_url, bbc_title, bbc_body)
         agent.addSource(bbc)
         clpa_server = 'news2.neva.ru'
         clpa_group = 'alt.sex.telephone'
         clpa_window = 1
         clpa = NNTPSource(clpa_server,clpa_group,clpa_window)
         agent.addSource(clpa)
         agent.addDestination(PlainDestination())
         agent.addDestination(HTMLDestination('news.html'))
         agent.distribute()
        if name == 'main':
         runDefaultSetup()

        這個程序,首先從整體上進行分析,重點部分在于NewsAgent,它的作用是存儲新聞來源,存儲目標地址,然后在分別調用來源服務器(NNTPSource以及SimpleWebSource)以及寫新聞的類(PlainDestination和HTMLDestination)。所以從這里也看的出,NNTPSource是專門用來獲取新聞服務器上的信息的,SimpleWebSource是獲取一個url上的數據的。而PlainDestination和HTMLDestination的作用很明顯,前者是用來輸出獲取到的內容到終端的,后者是寫數據到html文件中的。

        有了這些分析,然后在來看主程序中的內容,主程序就是來給NewsAgent添加信息源和輸出目的地址的。

        這確實是個簡單的程序,不過這個程序可是用到了分層了。

        相信看了本文案例你已經掌握了方法,更多精彩請關注Gxl網其它相關文章!

        推薦閱讀:

        配置OpenCV3+Python3的方法

        Python3+opencv的配置教程

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        python做出新聞聚合項目

        python做出新聞聚合項目:這次給大家帶來python做出新聞聚合項目,python做出新聞聚合項目的注意事項有哪些,下面就是實戰案例,一起來看一下。先上代碼,然后再來逐一分析:from nntplib import NNTP from time import strftime,time,localtime from em
        推薦度:
        標簽: 制作 項目 聚合
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 在线观看H网址免费入口| 国产精品入口麻豆免费观看| 亚洲精品专区在线观看| 国产精品亚洲专区无码WEB| 成人毛片免费观看视频在线| 亚洲综合激情五月丁香六月| 久久亚洲精品国产精品婷婷| 国产男女爽爽爽免费视频| 97人伦色伦成人免费视频| 亚洲无码一区二区三区| 国产精成人品日日拍夜夜免费| 亚洲色成人网站WWW永久| 一区二区三区AV高清免费波多| 免费亚洲视频在线观看| 久久99精品视免费看| 亚洲综合免费视频| 久久久www成人免费毛片| 亚洲AV永久无码天堂影院| h片在线播放免费高清| 人碰人碰人成人免费视频| 亚洲男人天堂2020| 亚洲GV天堂GV无码男同| 最近中文字幕免费2019| 久久久久亚洲国产| 99在线免费观看视频| 91免费福利精品国产| 亚洲av日韩av无码av| 老牛精品亚洲成av人片| 色老头永久免费网站| 亚洲精品日韩一区二区小说| 久久亚洲高清综合| 在线观看免费视频资源| 亚洲Aⅴ在线无码播放毛片一线天| 18国产精品白浆在线观看免费 | 一道本在线免费视频| 国产AV无码专区亚洲Av| 久久国产免费直播| 国产亚洲精品a在线观看 | 国产精品免费久久久久影院| 亚洲AV美女一区二区三区| 亚洲国产精品乱码在线观看97|