当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 2 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 查找歌词的python的脚本
帖子发表于 : 2006-05-25 13:08 
论坛管理员

注册: 2005-03-27 0:06
帖子: 10116
系统: Ubuntu 12.04
送出感谢: 7
接收感谢: 128
代码:
#!/usr/bin/python
# -*- coding: gbk -*-
# Copyright (c) 2006 UbuntuChina <http://www.ubuntu.org.cn>
# License: GPLv2
# Author: oneleaf <oneleaf AT gmail.com>

import urllib
import BaseHTTPServer,SocketServer
import httplib
import re

htmlhead='''
<html>
<head>
<META content="text/html; charset=gbk" http-equiv=Content-Type>
<title>MP3 Search</title>
<style type="text/css">
td.row1   { background-color: #fff8f2; }
td.row2   { background-color: #f8f5ee; }
</style>
</head>
<body>
<form>
<input name="word" value="%s">&nbsp;<input value="Search"  type="submit">
</form>
'''
htmlfood='''
</body>
</html>
'''

def get(self,word):
    conn = httplib.HTTPConnection('mp3.baidu.com')
    url='/m?f=ms&tn=baidump3lyric&ct=150994944&lf=2&rn=10&word='+word+'&lm=-1'
    conn.request("GET",url)
    response = conn.getresponse()
    html=response.read()
    expression='<div style="padding-left:10px;line-height:20px;padding-top:1px">.*\n.*'
    lineno=0
    listSentence = re.findall(expression, html)
    self.wfile.write('<table align="center" width="100%" cellpadding="1" cellspacing="2">')
    while lineno<len(listSentence):
        self.wfile.write('<tr>')
        self.wfile.write('<td class=row'+str(lineno%2+1)+' align="left" width="100%">')
        self.wfile.write(listSentence[lineno][64:-1])
        self.wfile.write('</td>')
        self.wfile.write('</tr>')
        lineno+=1
    self.wfile.write('</table>')

class RequestHandler(BaseHTTPServer.BaseHTTPRequestHandler):
    def do_GET(self):
        self.send_head()
        if self.path.find('word')==-1:
            self.wfile.write(htmlhead % '')
            self.wfile.write(htmlfood)
        else:
            word=self.path[7:]
            self.wfile.write(htmlhead % urllib.unquote(word))
            get(self,word)
            self.wfile.write(htmlfood)

    def send_head(self):
        self.send_response(200)
        self.send_header("content-type","text/html")
        self.end_headers()

class myWebServer(SocketServer.ThreadingMixIn,BaseHTTPServer.HTTPServer): pass

if __name__ == "__main__":
    server = myWebServer(('', 8080), RequestHandler)
    server.serve_forever()


页首
 用户资料  
 
2 楼 
 文章标题 :
帖子发表于 : 2006-05-28 11:12 

注册: 2005-08-21 0:41
帖子: 59
地址: 北京
送出感谢: 0 次
接收感谢: 0 次
谢谢。。。


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 2 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 1 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译