mysql百度翻译_有道翻译和百度翻译在线爬取

importrequestsimportreimportexecjsclassBaiduTranslateSpider:def __init__(self):

self.get_url= 'https://fanyi.baidu.com/?aldtype=16047'self.headers={'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3','accept-encoding': 'gzip, deflate, br','accept-language': 'zh-CN,zh;q=0.9,en;q=0.8','cookie': 'BAIDUID=68E904D92F2C8ACC62C7542C397FBD0B:FG=1; PSTM=1561529234; BIDUPSID=2633580F87BCDFE102C31514DA3EACA6; BDUSS=HdWTDhTajh0ZTd3QmFIbzZjeDdhTTE5Wkd0R1FGcFFSaDFJVVRRSHN3ZjNnbGRkSVFBQUFBJCQAAAAAAAAAAAEAAADE7I5C06LTwrDUxvjLq9fTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPf1L1339S9dM; BDORZ=B490B5EBF6F3CD402E515D22BCDA1598; locale=zh; REALTIME_TRANS_SWITCH=1; FANYI_WORD_SWITCH=1; HISTORY_SWITCH=1; SOUND_SPD_SWITCH=1; SOUND_PREFER_SWITCH=1; BDRCVFR[feWj1Vr5u3D]=I67x6TjHwwYf0; delPer=0; PSINO=3; H_PS_PSSID=29546_1466_21083_29578_29519_28518_29099_29568_28835_29221_29460_22157; Hm_lvt_64ecd82404c51e03dc91cb9e8c025574=1563869496,1563869600,1563953532,1564019873; to_lang_often=%5B%7B%22value%22%3A%22zh%22%2C%22text%22%3A%22%u4E2D%u6587%22%7D%2C%7B%22value%22%3A%22en%22%2C%22text%22%3A%22%u82F1%u8BED%22%7D%5D; from_lang_often=%5B%7B%22value%22%3A%22zh%22%2C%22text%22%3A%22%u4E2D%u6587%22%7D%2C%7B%22value%22%3A%22en%22%2C%22text%22%3A%22%u82F1%u8BED%22%7D%5D; yjs_js_security_passport=47e142eebb082b8c92ef506657211ad704b97215_1564026801_js; Hm_lpvt_64ecd82404c51e03dc91cb9e8c025574=1564026808','upgrade-insecure-requests': '1','user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36',

}#获取token

defget_token(self):

html= requests.get(url=self.get_url, headers=self.headers).text#用正则解析

pattern = re.compile(r"token: '(.*?)'", re.S)

token=pattern.findall(html)print(token)#获取sign

defget_sign(self, word):

with open('./node.js', 'r') as f:

js_data=f.read()

execjs_obj=execjs.compile(js_data)

sign= execjs_obj.eval('e("{}")'.format(word))returnsign#获取翻译结果

defget_result(self, word, fro, to):

token=self.get_token()

sign=self.get_sign(word)#把formdata定义成字典

formdata ={'from': fro,'to': to,'query': word,'transtype': 'realtime','simple_means_flag': '3','sign': sign,'token': token

}

html_json= requests.post(url='https://fanyi.baidu.com/v2transapi', data=formdata, headers=self.headers).json()return html_json['trans_result']['data'][0]['dst']if __name__ == '__main__':

spider=BaiduTranslateSpider()

num= input('1.翻译英语,2.翻译汉语,请选择(1/2):')if num == '1':

fro= 'zh'to= 'en'

else:

fro= 'en'to= 'zh'word= input('请输入要翻译的单词:')

result= spider.get_result(word, 'zh', 'en')print(result)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值