使用web.py搭建网站框架
承上:
上篇已经将优酷视频的链接地址采集到数据库中,详情看 Python抓取优酷视频(上):爬虫使用及数据处理 ,这里稍微啰嗦几句,采集的其实就是单独视频播放
的页面地址,而不是flash地址,因此不用做地址解析。接下去任务就是搭建一个网站列表页。
思路:
1.采用web.py搭建网站框架,Django太大搞不懂,web.py上手快。
2.主页面采用列表页,显示title和date
3.采用分页处理,每页10个视频连接
代码:
代码结构:
web_by:
code.py
template:
index.html
code.py
1 import web 2 import MySQLdb 3 4 db = web.database(dbn= ' mysql ' ,user= ' root ' ,pw= ' root ' ,db= ' python_test ' ) #连接数据库 5 render = web.template.render( ' templates/ ' ) #模板路径 6 urls = ( #url设置 7 ' / ' , ' index ' , 8 ' /page/(\d+) ' , ' index ' 9 ) 10 11 class index: 12 def GET(self,page=1 ): #分页函数 13 page = int(page) 14 perpage = 10 15 offset = (page-1)* perpage 16 posts = db.select( ' ykgame ' ,order= " date DESC " ,offset= offset, 17 limit= perpage) 18 postcount = db.query( ' select count(*) as count from ykgame ' )[0] 19 pages = postcount.count / perpage 20 if postcount.count % perpage > 0: 21 pages += 1 22 if page > pages: 23 raise web.seeother( ' / ' ) 24 else : 25 return render.index(posts=posts,pages= pages) 26 27 if __name__ == " __main__ " : 28 app = web.application(urls,globals()) 29 app.run()
index.html
1 $ def with (posts,pages) 2 <ul> 3 $ for post in posts: 4 <li id= " t$post.id " ><a href= " $post.href " >$post.title</a> $post.date</li> 5 </ul> 6 7 $ for page in range(1,pages+1 ): 8 <a href= " /page/$page " >$page</a>
代码比较简单就不做分析了,存在的问题是现未按时间顺序排序,原因在于优酷的时间除了日期格式还有比如1小时前等字符,
而采集的时候因为是多线程采集导致没按时间顺序入库。解决办法就是做个时间转换,然后order by date。
效果:
主页
内容页
分类: python
作者: Leo_wl
出处: http://HdhCmsTestcnblogs测试数据/Leo_wl/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
版权信息声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did48027