posts - 431,  comments - 344,  trackbacks - 0

由于有很多数据需要逐个翻译,手工处理比较麻烦,花了十来分钟写了个python程序去跑,轻松了很多。具体代码如下:

#encoding=utf-8
from __future__ import with_statement
import MySQLdb
import urllib
from lister import ListerTR

conn = MySQLdb.connect(host="localhost", user="root", passwd="root", db="coocoo", charset="utf8")
cursor = conn.cursor()
cursor.execute("select id, enname from compound where enname != '' and zhname = '' order by id")
row=cursor.fetchall()
for r in row:
    params = urllib.urlencode({'eng2chi':r[1]})      这里组织参数
    sock = urllib.urlopen("http://202.127.145.134/scdb/translate/translate.asp", params)   发送请求,并把参数传过去
    html = sock.read()
    sock.close()
    p = ListerTR()   以下为解析返回的数据代码
    p.feed(html)
    html = p.html
    if u"成功" in html:
        value = p.values[5]
        data = value.strip()
        print r[0], r[1], data    取回翻译成功的内容更新数据库里面的值
        cursor.execute("update compound set zhname = %s where id=%s", (data, r[0]))
        conn.commit()
    else:    把翻译失败的记录给文本文件中
        with open('failture.txt', 'a+') as f:
            f.write(str(r[0])+" | "+str(r[1]))
            f.write('\n')
cursor.close()
conn.close()

posted on 2009-07-28 14:32 周锐 阅读(3899) 评论(0)  编辑  收藏 所属分类: MySQLPython

只有注册用户登录后才能发表评论。


网站导航: