python 爬有道翻译

在有道翻译页面中打开开发者工具, 在 Headers 板块找到 Request URL 以及相应的 data.importurllib.request

importurllib.parse

importJSON

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

#_o 要去掉, 否则会出先 error_code:50 的报错

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

data={

}

# 开发者工具里有, i 和 doctype 键不可少

data['i']=content

data['from']='AUTO'

data['to']='AUTO'

data['smartresult']='dict'

data['client']='fanyideskweb'

data['salt']='15695569180611'

data['sign']='5b0565493d812bc5e713b895c12d615d'

data['doctype']='json'

data['version']='2.1'

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

data['action']='FY_BY_REALTTIME'

# 将字典类型的请求数据转化为 url 编码, 并将编码类型转变为'utf-8'类型

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

# 向 url 请求 data 的响应结果

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

# 读取返回数据内容, decode 是转换返回数据的格式为 str

=response.read().decode('utf-8')

# 使用 JSON 将字符串转化成字典

target=JSON.loads(HTML)

# 结果在 key='translateResult'的三层列表的 key='tgt'中

print("翻译结果:%s"%(target['translateResult'][0][0]['tgt']))

上面这种很大可能被有道网页给识别出来不是人工在访问, 而是代码在访问.

此时我们可以加个'User-Agent'代理. 通过设置 User Agent 来达到隐藏身份的目的, 一般情况下浏览器是通过 User-Agent 来识别的.

通过调用 urllib.request.Request() 来设置 UA.classurllib.request.Request(url,data=None,headers={

},origin_req_host=None,unverifiable=False,method=None)

Thisclassisan abstractionofa URL request.

url should be a string containing a valid URL.

headers should be a dictionary #headers 要为字典

有两种方法设置 User Agent:

1. 在创建 Request 对象的时候, 填入 headers 参数 (包含 User Agent 信息), 这个 Headers 参数要求为字典;

2. 在创建 Request 对象的时候不添加 headers 参数, 在创建完成之后, 使用 add_header() 的方法, 添加 headers.importurllib.request

importurllib.parse

importJSON

importtime

whileTrue:

content=input('请输入需要翻译的内容 (输入"q! 退出程序 "):')

ifcontent=='q!':

break;

#_o 要去掉, 否则会出先 error_code:50 的报错

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

'''

第一种方法

head={}

head['User-Agent']='Mozilla/5.0(WindowsNT10.0;WOW64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/65.0.3325.181Safari/537.36'

'''

data={}

#开发者工具里有, i 和 doctype 键不可少

data['i']=content

data['from']='AUTO'

data['to']='AUTO'

data['smartresult']='dict'

data['client']='fanyideskweb'

data['salt']='15695569180611'

data['sign']='5b0565493d812bc5e713b895c12d615d'

data['doctype']='json'

data['version']='2.1'

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

data['action']='FY_BY_REALTTIME'

#将字典类型的请求数据转化为 url 编码, 并将编码类型转变为'utf-8'类型

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

'''

第一种方法

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

'''

#第二种方法设置 User Agent

#创建 Request 对象

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

req.add_header('User-Agent','Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36')

#传入创建好的 Request 对象

response=urllib.request.urlopen(req)

#读取响应信息并解码

HTML=response.read().decode('utf-8')

#使用 JSON 将字符串转化成字典

target=JSON.loads(HTML)

#结果在 key='translateResult'的三层列表的 key='tgt'中

print("翻译结果:%s"%(target['translateResult'][0][0]['tgt']))

#5 秒一次

time.sleep(5)

来源: http://www.bubuko.com/infodetail-3216295.html

python如何爬有道翻译_python 爬有道翻译相关推荐

  1. python爬取豆瓣书籍_Python 爬取豆瓣读书标签下的书籍

    这几天想爬下豆瓣读书时发现 github 上他人分享的源码都有一定年份了,豆瓣读书的页面貌似也稍微改了,于是就在前人轮子的基础上改进一下重新爬下豆瓣读书.Python 版本是 3.7. 1.爬取信息 ...

  2. python爬取手机微信_Python爬取微信好友

    前言 今天看到一篇好玩的文章,可以实现微信的内容爬取和聊天机器人的制作,所以尝试着实现一遍,本文记录了实现过程和一些探索的内容 itchat安装 对微信的控制可以使用itchat来实现,我们找到itc ...

  3. python爬取天气数据_Python爬取历史天气数据

    Python爬取历史天气数据 作者:梅昊铭 1. 导读 之前Mo给大家分享过杭州历年天气情况的数据集,相信有不少小伙伴好奇这些数据是怎么获取.今天Mo就来教大家如何使用Python来进行历史天气数据的 ...

  4. python爬取历史天气_Python 爬取历史天气数据

    Python 爬取历史天气数据 作者:梅昊铭 1. 导读 之前Mo给大家分享过杭州历年天气情况的数据集,相信有不少小伙伴好奇这些数据是怎么获取.今天Mo就来教大家如何使用Python来进行历史天气数据 ...

  5. python运行界面英文翻译_python使用百度api翻译中英文

    python使用百度api翻译中英文 写程序取变量名的时候,常常需要翻译单词,或者将中文翻译成英语.有道词典,必应词典都很好,可是...命令行习惯了还是觉得用在cmd里面调出程序使用起来也许会更爽.于 ...

  6. python英译汉库模块_Python 进阶之路-翻译模块

    Python 进阶之路-翻译模块 作者:nango  阅读:1749次  来源:原创  时间:2017-07-14 17:09 Git 地址 [python 翻译模块](https://github. ...

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

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

  8. python爬取有道词典_python 爬虫+有道词典实现一个简单翻译程序

    #coding=utf-8 importurllibimporturllib2importjson'''功能说明: 根据输入要翻译的文字,进行有道自动翻译: 实现中文->英文.英语及其他语言-& ...

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

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

  10. python利用有道词典翻译_Python利用有道词典接口制作即时翻译的工具

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 以下文章来源于Python 实用宝典,作者Python 实用宝典 前言 在编程时经 ...

最新文章

  1. 反式自动微分autodiff是什么?反向传播(Back Propagation)是什么?它是如何工作的?反向传播与反式自动微分autodiff有什么区别?
  2. 光纤会在将来完全取代铜缆吗?
  3. context switch的切换过程(TTBR0的切换/ASID的介绍)
  4. 【Python】Pandas 数据类型概述与转换实战
  5. ReactNative ES6简介 及基本语法第一篇
  6. jar打包 剔除第三方依赖以及它的依赖_为什么Spring Boot的 jar 可以直接运行?
  7. iPhone走马灯控件实现
  8. jenkins docker 自动部署 构建_jenkins+docker+vue项目的自动部署环境
  9. java好学还是ui好学_java编程和ui设计哪个好学?
  10. python encode gbk_[转]Python UnicodeEncodeError: 'gbk' codec can't encode character 解决方法
  11. vue(vue-cli+vue-router)+babel+webpack项目搭建入门 (第二步)
  12. 会做饭的机器人曰记_做饭机器人作文作文300字
  13. mysql创建用户navicat_14MYSQL创建用户和授权、15Navicat的使用、16-pymysql模块的使用、17-索引...
  14. c语言强制停止程序,C语言实现程序的暂停
  15. 从零开始学数据库-MySQL
  16. C语言结构体struct
  17. 怎样使用迅雷提高下载速度
  18. python练手经典100例项目-Python 的练手项目有哪些值得推荐?
  19. 稀疏表示 河流多元信息处理 matlab
  20. C语言编程答案保留三位小数,如何用c语言求倒数,保留3位有效数字

热门文章

  1. hash_map C++
  2. IT行业都有什么职位?
  3. 缥缈峰--JVM系列之内存区域
  4. 关于Android studio在ubuntu中真机测试运行出现Gradle build daemon disappeared unexpectedly的一个原因及解决办法
  5. prefetch_related和select_related的区别
  6. 数据库原理与应用~第三版课后习题答案(何玉洁 编著)
  7. 什么是GC,GC是什么意思?为什么要有GC?
  8. linux查看gc日志,GC通用日志解读
  9. 影响国债收益率的因素
  10. 基于C#和OpenVINO在英特尔独立显卡上部署PP-TinyPose模型