注:传入的类型为POST类型,所以需要使用urllib.parse.urlencode(),将字典转换成URL可用参数;

使用json.loads(),将输出的json格式,转换为字典类型

import urllib.request

import urllib.parse

import json

content = input("请输入要翻译的内容:")

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

data = {}

data["i"] = content

data["from"] = "AUTO"

data["to"] = "AUTO"

data["smartresult"] = "dict"

data["client"] = "fanyideskweb"

data["salt"] = "1537624423057"

data["sign"] = "0c1989ed937485dd570fc4b5907cf567"

data["doctype"] = "json"

data["version"] = "2.1"

data["keyfrom"] = "fanyi.web"

data["action"] = "FY_BY_REALTIME"

data["typoResult"] = "false"

#因传入的类型为POST类型,所以需要将字典转换为url需要使用的参数

data = urllib.parse.urlencode(data).encode("utf-8")

response = urllib.request.urlopen(url, data)

html = response.read().decode("utf-8")

#将JSON格式转换成字典类型

translate = json.loads(html)

translate_src = translate["translateResult"][0][0]["src"]

translate_Result = translate["translateResult"][0][0]["tgt"]

print("翻译内容:%s" % translate_src)

print("翻译结果:%s" % translate_Result)

==============================使用代理访问======================================

import urllib.request

import urllib.parse

import json

while True:

content = input("请输入要翻译的内容(输入!退出):")

if content == "!":

break

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

data = {}

data["i"] = content

data["from"] = "AUTO"

data["to"] = "AUTO"

data["smartresult"] = "dict"

data["client"] = "fanyideskweb"

data["salt"] = "1537624423057"

data["sign"] = "0c1989ed937485dd570fc4b5907cf567"

data["doctype"] = "json"

data["version"] = "2.1"

data["keyfrom"] = "fanyi.web"

data["action"] = "FY_BY_REALTIME"

data["typoResult"] = "false"

#因传入的类型为POST类型,所以需要将字典转换为url需要使用的参数

data = urllib.parse.urlencode(data).encode("utf-8")

#---------------------------------代理---------------------------------------------------

#urllib.request.ProxyHandler的参数师一个数组

proxy_support = urllib.request.ProxyHandler({"https": "27.17.45.90:43411"})

#创建一个opener

opener = urllib.request.build_opener(proxy_support)

#添加user-agent

opener.addheaders = [("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) "

"AppleWebKit/537.36 (KHTML, like Gecko) "

"Chrome/69.0.3497.81 Safari/537.36")]

#全局加载代理IP

urllib.request.install_opener(opener)

#----------------------------------代理结束--------------------------------------------------

req = urllib.request.Request(url, data)

req.add_header("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) "

"AppleWebKit/537.36 (KHTML, like Gecko) "

"Chrome/69.0.3497.81 Safari/537.36")

response = urllib.request.urlopen(req)

html = response.read().decode("utf-8")

#将JSON格式转换成字典类型

translate = json.loads(html)

translate_src = translate["translateResult"][0][0]["src"]

translate_Result = translate["translateResult"][0][0]["tgt"]

print("翻译内容:%s" % translate_src)

print("翻译结果:%s" % translate_Result)

==============================分割线===========================================

1、在运行中报{"errorCode":50},将审查元素中获取的URL里面,将translate_o的_o去掉就不会报错。

2、data["salt"] = "1537624423057" :时间戳

3、data["sign"] = "0c1989ed937485dd570fc4b5907cf567" :时间戳 + 翻译内容加密生成的字符串

4、urllib.error.URLError: ,没有连接到服务器,需要更换代理IP

5、urllib.error.HTTPError: HTTP Error 403: Forbidden:需要添加user-agent

python有道翻译-Python爬去有道翻译相关推荐

  1. python有道-Python爬去有道翻译

    注:传入的类型为POST类型,所以需要使用urllib.parse.urlencode(),将字典转换成URL可用参数: 使用json.loads(),将输出的json格式,转换为字典类型 impor ...

  2. python爬虫有道词典_Python爬取有道词典,有道的反爬很难吗?也就这样啊!

    前言 大家好 ​ 最近python爬虫有点火啊,啥python爬取马保国视频--我也来凑个热闹,今天我们来试着做个翻译软件--不是不是,说错了,今天我们来试着提交翻译内容并爬取翻译结果 主要内容 PS ...

  3. python爬取有道词典_Python爬取有道词典

    from urllib import request,parse import hashlib import random import time import json #定义md5加密函数 def ...

  4. 懒人动手,用python做一个基础翻译重命名器(破解百度翻译反爬手段)

    想法: 在做开发的时候,经常需要命名各种变量,方法/函数,类,包,库等. 走一遍流程就是:想好要起的名字,比如"非常帅气": 然后上翻译网站,比如百度翻译,有道翻译: 将中文输入并 ...

  5. 013:实战爬取三个翻译网站掌握Ajax表单提交

    本篇内容由易到难,涉及到ajax-form表单数据提交及md5解密 一共有三个翻译网络.我们要实现的是找到翻译的接口,打造我们自己的翻译软件.首先是 爬取百度翻译: 打开百度翻译,来获取我们的url ...

  6. python爬取有道词典_利用Python3和Charles爬取有道词典,生成翻译exe单文件

    感觉挺好玩的,所以就转了,但我也做了定制化. 原文: 一.用Charles爬取数据(Windows用Fiddler也差不多) Charles是一个多平台的抓包工具,可以很方便的抓取http和https ...

  7. python实战:利用chrome抓包插件HTTP间谍分析有道翻译反爬机制

    本次实战目标站点:http://fanyi.youdao.com/?keyfrom=fanyi-new.logo ,主要利用HTTP间谍抓包插件分析有道翻译反爬机制,该抓包能帮我们过滤掉一些不需要的常 ...

  8. python有道翻译-使用python2爬取有道翻译

    爬虫的核心思想:模拟浏览器正常访问服务器,一般情况只要浏览器能访问的,都可以爬,如果被反爬,则考虑反复测试添加Request Header数据,知道可以爬取为止. 反爬思路目前知道的有:User-Ag ...

  9. python有道翻译法语-使用python2爬取有道翻译

    爬虫的核心思想:模拟浏览器正常访问服务器,一般情况只要浏览器能访问的,都可以爬,如果被反爬,则考虑反复测试添加Request Header数据,知道可以爬取为止. 反爬思路目前知道的有:User-Ag ...

最新文章

  1. Asp.net控件开发学习笔记(三)-控件开发基础
  2. PHP6 Web 开发读书笔记
  3. XML与Webservices相关的安全问题概述
  4. WCF加密操作(包括证书和证书+帐号密码)
  5. MAVEN约定的目录结构
  6. linux 如何格式化ext2,Linux的Ext2文件系统(InodeBlock)详解
  7. 首期openGauss训练营结营,48个FAQ和全部PPT通通给你,随附62人结营学员名单
  8. 求一个任意实数c的算术平方根g_中考总复习实数知识点
  9. linux服务sendmail邮件服务
  10. 用JEP+SpringBoot进行动态公式处理计算
  11. rpc服务器不可用处于启用状态,电脑提示RPC服务器不可用怎么办?
  12. 线程池引发的故障到底该怎么排查?
  13. 某公司对新员工的公开信
  14. selenium firefox 启动报错 Timed out wating 45 seconds for firefox to start
  15. html页面中艺术字,html 生成艺术字
  16. win10系统的定位服务器,系统大神教你Win10笔记本电脑定位跟踪功能技巧
  17. uniapp MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 upgrade listeners
  18. 中英文翻译功能 php,PHP微信开发之翻译功能
  19. 核范数与规则项参数选择
  20. 读《一个人的朝圣》| 沾染上称为信仰的东西,都会不一样

热门文章

  1. ADO.net,Linq to SQL和Entity Framework性能实测分析
  2. 获取某个日期的当前周一的时间
  3. python学习-- for和if结合使用
  4. js 识别汉字和全角字符
  5. yum安装rz,sz
  6. 成都Uber优步司机奖励政策(4月12日)
  7. joda time, jackson 与 scala 反射
  8. NYOJ 453 小珂的烦恼 模拟
  9. 有关绑定没有数据显示的问题
  10. python表白代码照片墙-python入会生成照片墙 利用python生成照片墙代码