您当前的位置: 首页 >  爬虫

IT之一小佬

暂无认证

  • 3浏览

    0关注

    1192博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

爬虫之js有道翻译

IT之一小佬 发布时间:2021-02-06 22:07:40 ,浏览量:3

爬虫之js有道翻译

示例代码:

import requests
import hashlib
import time
import json
import random


class Youdao(object):

    def __init__(self, word):
        self.url = 'http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule'
        #  有道翻译中,请求头必须包括三部分,缺一不可
        self.headers = {
            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36',
            'Referer': 'http://fanyi.youdao.com/',
            'Cookie': '_ntes_nnid=5103784677b70eaf04cdcc7f2af0c705,1593405479568; OUTFOX_SEARCH_USER_ID_NCOO=2100388568.2505867; OUTFOX_SEARCH_USER_ID=-1395690799@10.169.0.102; JSESSIONID=aaaWGPTfXdl7Lgo1dE3Dx; ___rl__test__cookies=1612617115317'
        }
        self.formdata = None
        self.word = word

    def generate_formdata(self):
        ts = str(int(time.time()*100))    #  时间戳
        salt = ts + str(random.randint(0, 9))  #  时间戳+随机一个数
        sign_str = "fanyideskweb" + self.word + salt + "Tbh5E8=q6U3EXe+&L[4c@"  #  对拼接的字符串进行md5加密
        md5 = hashlib.md5()
        md5.update(sign_str.encode())
        sign = md5.hexdigest()
        self.formdata = {
            'i': self.word,
            'from': 'AUTO',
            'to': 'AUTO',
            'smartresult': 'dict',
            'client': 'fanyideskweb',
            'salt': salt,
            'sign': sign,
            'lts': ts,
            'bv': '4f7ca50d9eda878f3f40fb696cce4d6d',
            'doctype': 'json',
            'version': '2.1',
            'keyfrom': 'fanyi.web',
            'action': 'FY_BY_REALTlME'
        }

    def get_data(self):
        response = requests.post(self.url, data=self.formdata, headers=self.headers)
        return response.content

    def parse_data(self, data):
        data = data.decode()
        json_data = json.loads(data)
        print(json_data)
        print(type(json_data))
        trans_data = json_data['translateResult'][0][0]['tgt']
        print(trans_data)



    def run(self):
        #  url
        #  headers
        #  formdata
        self.generate_formdata()
        #  发送请求,获取响应
        data = self.get_data()
        print(data)
        #  解析数据
        self.parse_data(data)


if __name__ == '__main__':
    # youdao = Youdao('good')
    youdao = Youdao('好的')
    youdao.run()

运行效果:

思路截图:

关注
打赏
1665675218
查看更多评论
立即登录/注册

微信扫码登录

0.1769s