import time
import requests
import pymysql
import datetime
import random
from hashlib import md5
import json
now_date = datetime.datetime.now().strftime("%Y-%m-%d")
appid = 'xxxxxxx' 你的id
appkey = 'xxxx' 你的key
def make_md5(s, encoding='utf-8'):
return md5(s.encode(encoding)).hexdigest()
def mysqlclient():
db = pymysql.connect(
host='127.0.0.1',
port=3306,
user='root',
passwd='123456',
db='jiale',
charset='utf8'
)
curses = db.cursor()
sql='SELECT id,zh_cont FROM report_data WHERE tid=%s AND ctime= "%s" AND is_fanyi=0' % (1,now_date)
try:
curses.execute(sql)
report_data = curses.fetchall()
db.close()
return report_data
except:
print("Error:da s b")
#连百度翻译数据
def to_baidu():
from_lang = 'zh'
to_lang = 'en'
endpoint = 'http://api.fanyi.baidu.com'
path = '/api/trans/vip/translate'
url = endpoint + path
salt = random.randint(32768, 65536)
content_list = mysqlclient()
data_list = [row for row in content_list]
for (id,query) in enumerate(data_list):
sign = make_md5(appid + str(query[1]) + str(salt) + appkey)
headers = {'Content-Type': 'application/x-www-form-urlencoded'}
payload = {'appid': appid, 'q': str(query[1]), 'from': from_lang, 'to': to_lang, 'salt': salt, 'sign': sign}
r = requests.post(url, params=payload, headers=headers)
time.sleep(1)
result = r.json()
en_cont = result['trans_result'][0]['dst']
print('翻译:',en_cont)
id=query[0]
dd = en_cont
to_insert(dd,id)
update_fanyi_status(id)
def to_insert(en_cont, id):
try:
db = pymysql.connect(
host='127.0.0.1',
port=3306,
user='root',
passwd='123456',
db='jiale',
charset='utf8'
)
cursor = db.cursor()
sql = "UPDATE report_data SET en_cont = %s WHERE id = %s"
cursor.execute(sql, (en_cont, id))
print('塞进去一条id:',id)
db.commit()
except pymysql.MySQLError as e:
print("Error: report_data update error", e)
db.rollback()
return False
finally:
if cursor:
cursor.close()
if db:
db.close()
return True
def update_fanyi_status(id):
try:
db = pymysql.connect(
host='127.0.0.1',
port=3306,
user='root',
passwd='123456',
db='jiale',
charset='utf8'
)
cursor = db.cursor()
sql = "UPDATE report_data SET is_fanyi = 1 WHERE id = %s"
cursor.execute(sql, (id))
print('更新了一条id:',id)
db.commit()
except pymysql.MySQLError as e:
print("Error: report_data update error", e)
db.rollback()
return False
finally:
if cursor:
cursor.close()
if db:
db.close()
return True
if __name__ == '__main__':
to_baidu()
python 读取数据调翻译更新表字段
发布时间 2023-12-19 15:38:11作者: 乐乐乐乐乐乐樂