爬虫----有道翻译


import time
import requests
import hashlib


class YoudaoFanyi:

    def __get_cookie(self):
        url='http://fanyi.youdao.com/'
        ret=requests.get(url=url)
        return ret.headers.get('Set-Cookie')

    def translate(self,key,from_='AUTO',to='AUTO'):#from_='zh-CHS',to='en'
        cookie=self.__get_cookie()
        d = key
        m = hashlib.md5()
        u = 'fanyideskweb' #判断是网页还是客户端
        # 由于网页是用的js的时间戳(毫秒)
        # 所以需要*1000
        f = str(int(time.time()*1000))
        c = "rY0D^0'nM0}g5Mm1z%1G4" #根据md5的方式:
        c = "1L5ja}w$puC.v_Kz3@yYn" #根据md5的方式:
        # md5(u + d + f + c),拼接字符串生成sign参数。
        m.update((u + d + f + c).encode('utf-8')) #生成加密串
        data= { 'i':d,
                'from':from_,
                'to':to,
                'smartresult':'dict',
                'client':u,
                'salt':f,
                'sign':m.hexdigest(),
                'doctype':'json',
                'version':'2.1',
                'keyfrom':'fanyi.web',
                'action':'FY_BY_CLICKBUTTION',
                'typoResult': False }
        headers = { 'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36',
                    'Origin':'http://fanyi.youdao.com',
                    'Referer':'http://fanyi.youdao.com/',
                    'Host': 'fanyi.youdao.com',
                    'Connection': 'keep - alive',
                    'Cookie':cookie,
                    } #print(data) #接口
        # post = 'http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule&sessionFrom=null'
        post = 'http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule'
        youdaojson = requests.post(post,headers = headers,data=data).json() #
        print(youdaojson)
        for i in youdaojson.get('translateResult'):
            for j in i:
                print('翻译结果:{a[tgt]}'.format(a=j))
        time.sleep(0.5)

if __name__== "__main__":
    youdao = YoudaoFanyi()
    while True:
        key =input("请输入你要翻译的文字('quit':退出): ").strip()
        if key=='q':
            break
        youdao.translate(key,from_='zh-CHS',to='en')

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值