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 周銳 閱讀(3915) 評論(0)  編輯  收藏 所屬分類: MySQLPython
          主站蜘蛛池模板: 区。| 米易县| 泗水县| 习水县| 越西县| 阿尔山市| 永兴县| 禄丰县| 伊宁县| 崇文区| 双鸭山市| 屏南县| 武穴市| 翁源县| 白水县| 和平县| 盐津县| 陇川县| 远安县| 浦城县| 侯马市| 亚东县| 海口市| 全南县| 哈密市| 华安县| 五寨县| 大悟县| 怀柔区| 河南省| 文安县| 平江县| 永平县| 呼伦贝尔市| 都昌县| 通海县| 三台县| 清涧县| 新竹市| 吴堡县| 黔西县|