• 热门专题

Python采集优酷视频之使用web.py搭建网站框架(下)

作者:littlebai  发布日期:2012-09-18 11:00:25
Tag标签:Python  优酷视频  网站框架  
  • 承上: 

    上篇已经将优酷视频的链接地址采集到数据库中,详情看Python采集优酷视频之爬虫使用及数据处理(上) ,这里稍微啰嗦几句,采集的其实就是单独视频播放

    的页面地址,而不是flash地址,因此不用做地址解析。接下去任务就是搭建一个网站列表页。

     

    思路:

    1.采用web.py搭建网站框架,Django太大搞不懂,web.py上手快。

    2.主页面采用列表页,显示title和date

    3.采用分页处理,每页10个视频连接

     

    代码:

    代码结构:

    web_by:

      code.py

      template:

        index.html

     

    code.py


    import web
     import MySQLdb
     
     db = web.database(dbn='mysql',user='root',pw='root',db='python_test')       #连接数据库
     render = web.template.render('templates/')                                  #模板路径
     urls = (                                                                    #url设置
         '/','index',
         '/page/(\d+)','index'    
     )
     
     class index:
         def GET(self,page=1):                                                   #分页函数
             page = int(page)
             perpage = 10 
             offset = (page-1)*perpage
             posts = db.select('ykgame',order="date DESC",offset=offset,
                                         limit=perpage)
             postcount = db.query('select count(*) as count from ykgame')[0]
             pages = postcount.count / perpage
             if postcount.count % perpage > 0:
                 pages += 1
             if page > pages:
                 raise web.seeother('/')
             else:
                 return render.index(posts=posts,pages=pages)
     
     if __name__ == "__main__":
         app = web.application(urls,globals())
         app.run()

    index.html


    $def with (posts,pages)
     <ul>
     $for post in posts:
         <li id= "t$post.id"><a href="$post.href">$post.title</a>  $post.date</li>
     </ul>
     
     $for page in range(1,pages+1):
         <a href="/page/$page">$page</a>

    代码比较简单就不做分析了,存在的问题是现未按时间顺序排序,原因在于优酷的时间除了日期格式还有比如1小时前等字符,

    而采集的时候因为是多线程采集导致没按时间顺序入库。解决办法就是做个时间转换,然后order by date。

     

    效果:


    主页


     

    内容页


     

About IT165 - 广告服务 - 隐私声明 - 版权申明 - 免责条款 - 网站地图 - 网友投稿 - 联系方式
本站内容来自于互联网,仅供用于网络技术学习,学习中请遵循相关法律法规