我是靠谱客的博主 细腻雨,最近开发中收集的这篇文章主要介绍使用Python爬取简单的有道翻译功能,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

python有道翻译功能简单的爬取

首先点开有道翻译官网,审查元素查看Network一栏,输入翻译内容获取translate信息(真正用到翻译功能的就是这个URL)
在这里插入图片描述

添加headers信息,代码如下
在这里插入图片描述
在这里插入图片描述

    url = 'http://fanyi.youdao.com/translate?_osmartresult=dict&smartresult=rule'


    '''head = {}
    head['User-Agent'] = 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3722.400 QQBrowser/10.5.3751.400'
    '''

##添加Form Data表单数据到爬虫的字典Data中
在这里插入图片描述
这里有两个参数是变化的,第一个是时间戳,第二个是时间戳+翻译内容返回的加密信息
salt: 15835456352950
sign: ae42ec1e55072dcee76885e8cdc7ec42
这里涉及到网页加密的方法,有很多解决方法,这里采用最简单的方法,删除URL中的_o,可以将对应的这两个参数删除,实现绕过反爬虫机制

    url = 'http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule'//将url中的_o删除,以此来删除salt和sign两个参数,来绕过反爬虫


    '''head = {}
    head['User-Agent'] = 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3722.400 QQBrowser/10.5.3751.400'
    '''

    data = {}
    data['i'] = content
    data['from'] = 'AUTO'
    data['to'] = 'AUTO'
    data['smartresult'] = 'dict'
    data['client'] = 'fanyideskweb'
    data['doctype'] = 'json'
    data['version'] = '2.1'
    data['keyfrom'] = 'fanyi.web'
    data['action'] = 'FY_BY_CL1CKBUTTON'
    data = urllib.parse.urlencode(data).encode('utf-8')


调用python的urllib库方法,最后加上循环功能实现多次输入
完整代码如下:

import urllib.request
import urllib.parse
import json
import time

while True:
    content = input('请输入需要翻译的内容(输入"57K"退出程序):')
    if content == '57K':
        break

    url = 'http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule'


    '''head = {}
    head['User-Agent'] = 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3722.400 QQBrowser/10.5.3751.400'
    '''

    data = {}
    data['i'] = content
    data['from'] = 'AUTO'
    data['to'] = 'AUTO'
    data['smartresult'] = 'dict'
    data['client'] = 'fanyideskweb'
    data['doctype'] = 'json'
    data['version'] = '2.1'
    data['keyfrom'] = 'fanyi.web'
    data['action'] = 'FY_BY_CL1CKBUTTON'
    data = urllib.parse.urlencode(data).encode('utf-8')


    request = urllib.request.Request(url,data,)
    request.add_header('User-Agent','Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3722.400 QQBrowser/10.5.3751.400')

    response = urllib.request.urlopen(request)
    html = response.read().decode('utf-8')

    target = json.loads(html)
    print("翻译结果是:%s" % (target['translateResult'][0][0]['tgt']))

    time.sleep(1)

实现界面如下

在这里插入图片描述

最后

以上就是细腻雨为你收集整理的使用Python爬取简单的有道翻译功能的全部内容,希望文章能够帮你解决使用Python爬取简单的有道翻译功能所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(41)

评论列表共有 0 条评论

立即
投稿
返回
顶部