python3:爬有道翻译(命令行版)

python:3.6.5
未用第三方库/一个简单的爬虫/用于实现有道翻译,查词无忧了。
问题?
其实写这个的过程中,遇到了一个问题,当前爬起的结果,只有一个结果,并没有爬取到更多的结果。
在网上也找了很久,一直没有找到答案,走过路过,如果有缘人你看到了我的问题刚好又有解决方案,请帮忙留言,谢谢. 

这个就是我这到的返回结果:


而事实上在浏览器端看到返回的json是这样的;


百思不得其解,而想到为selenium,但这个翻译速度实在是太慢了,无法接受。

不多说了,先上code:

#!/user/bin/python
#-*- coding:utf-8 -*-

from urllib import request
from urllib import parse
import json


def youdaoTranslate(value, count):
    if value == '':
        print('输入内容为空@_@')
        return False
    else:
        # Request URL
        responseURL = 'http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule'
        # 待提交准备Post给url的Data:定义为dict
        form_Data = {}
        form_Data['i'] = value
        form_Data['from'] = 'AUTO'
        form_Data['to'] = 'AUTO'
        form_Data['smartresult'] = 'dict'
        form_Data['client'] = 'fanyideskweb'
        form_Data['doctype'] = 'json'
        form_Data['version'] = '2.1'
        form_Data['keyfrom'] = 'fanyi.web'
        form_Data['action'] = 'FY_BY_REALTIME'
        form_Data['typoResult'] = 'false'
        # 使用urlencode方法转换标准格式 
        data = parse.urlencode(form_Data).encode('utf-8')
        response = request.urlopen(responseURL,data)
        html = response.read().decode('utf-8')
        # 使用JSON
        translate_result = json.loads(html)
        # print(translate_result)
        # 找到翻译结果
        # 这里推荐一个格式化JSON的好工具:https://c.runoob.com/front-end/53
        translate_result_main = translate_result['translateResult'][0][0]['tgt']
        # 打印翻译结果
        print(f'{count}. {translate_result_main}\n\n')
        return True
    
if __name__ == '__main__':
    try:
        count = 1
        while True:
            print('-'*26)
            word = input('请输入待翻译的单词或句子:\n').strip()
            if youdaoTranslate(word, count) == True:
                count += 1
    except KeyboardInterrupt:
        print('\a手动退出!欢迎再来')
    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值