<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
        主站蜘蛛池模板: 在线看片免费人成视久网| 羞羞视频在线观看免费| 1000部国产成人免费视频| 亚洲高清在线视频| 99精品视频在线观看免费专区| 国产成人无码综合亚洲日韩 | 蜜芽亚洲av无码精品色午夜| 最近2019中文免费字幕在线观看| 国产综合亚洲专区在线| 成人免费777777被爆出| 亚洲电影一区二区三区| 免费国产作爱视频网站| 亚洲日韩av无码中文| 亚洲AV网站在线观看| 国产人成网在线播放VA免费| 亚洲人成网7777777国产| 无码av免费网站| 国产色在线|亚洲| 午夜亚洲av永久无码精品| 国产精品极品美女自在线观看免费| 亚洲色成人网站WWW永久| 免费无遮挡无码永久视频| www.亚洲成在线| 精品亚洲一区二区三区在线观看| 免费无码av片在线观看| 亚洲男人天堂2018av| 亚洲七七久久精品中文国产| 99爱在线精品视频免费观看9 | 香港经典a毛片免费观看看| 亚洲人成网亚洲欧洲无码久久| 91在线手机精品免费观看| 亚洲av无码专区亚洲av不卡| 亚洲精品乱码久久久久久中文字幕| 57pao一国产成永久免费| 黄色网址大全免费| 亚洲日韩图片专区第1页| 免费理论片51人人看电影| 中文字幕久精品免费视频| 中文字幕无码精品亚洲资源网久久| 亚洲人成人网站在线观看| 色片在线免费观看|