由于有很多数据需要逐个翻译,手工处理比较麻烦,花了十来分钟写了个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) 编辑 收藏 所属分类:
MySQL 、
Python