python爬虫系列2-有道翻译

2020-07-29  本文已影响0人  livein80

任务需求:

# -*- coding: utf-8 -*-
# @Time    : 2020/7/29 6:05 下午
# @Author  : livein80
# @Email   : 12985594@qq.com
# @File    : ssyer.py
# @Software : PyCharm
# http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule
import urllib.request
import urllib.parse
import json

class Youdao():
    def __init__(self):
        self.data = {
            'i': '你好',
            'from': 'AUTO',
            'to': 'AUTO',
            'smartresult': 'dict',
            'client': 'fanyideskweb',
            'salt': '15958142153996',
            'sign': 'a40a53b10db1266b6f7e83da1a6892d',
            'ts': '1595814215399',
            'bv': 'a574807abaa52e41f9bafcd0b33fd416',
            'doctype': 'json',
            'version': '2.1',
            'keyfrom': 'fanyi.web',
            'action': 'FY_BY_CLICKBUTTION'
        }
        self.base_url='http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule'
        self.headers={
            'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36'
        }

    def main(self):
        key = input('请输入关键词 : ')
        self.data['i'] = key
        data = urllib.parse.urlencode(self.data) # 对关键词使用urlencode编码
        data_bytes = bytes(data,'utf-8') # 注:接口使用的是二进制数据
        req = urllib.request.Request(self.base_url,data=data_bytes,headers=self.headers)
        res = urllib.request.urlopen(req)
        html = res.read().decode('utf-8')
        # 把字符串转换成字典文件
        r_dict = json.loads(html)
        # print(html)
        return r_dict['translateResult'][0][0]

if __name__=='__main__':
    spider = Youdao()
    result = spider.main()
    print('result-->',str(result))
上一篇 下一篇

猜你喜欢

热点阅读