Python爬虫爬取有道实现翻译功能


Posted in Python onNovember 27, 2020

准备

首先安装爬虫urllib库

pip install urllib

获取有道翻译的链接url

Python爬虫爬取有道实现翻译功能

需要发送的参数在form data里

Python爬虫爬取有道实现翻译功能

示例

import urllib.request
import urllib.parse

url = 'http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule'
data = {}
data['i'] = 'i love python'
data['from'] = 'AUTO'
data['to'] = 'AUTO'
data['smartresult'] = 'dict'
data['client'] = 'fanyideskweb'
data['salt'] = '16057996372935'
data['sign'] = '0965172abb459f8c7a791df4184bf51c'
data['lts'] = '1605799637293'
data['bv'] = 'f7d97c24a497388db1420108e6c3537b'
data['doctype'] = 'json'
data['version'] = '2.1'
data['keyfrom'] = 'fanyi.web'
data['action'] = 'FY_BY_REALTlME'
data = urllib.parse.urlencode(data).encode('utf-8')
response = urllib.request.urlopen(url,data)
html = response.read().decode('utf-8')
print(html)

运行会出现50的错误,这里需要将url链接的_o删除掉

Python爬虫爬取有道实现翻译功能

删除后运行成功

Python爬虫爬取有道实现翻译功能

但是这个结果看起来还是太复杂,需要在进行优化

导入json,然后转换成字典进行过滤

import urllib.request
import urllib.parse
import json

url = 'http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule'
data = {}
data['i'] = 'i love python'
data['from'] = 'AUTO'
data['to'] = 'AUTO'
data['smartresult'] = 'dict'
data['client'] = 'fanyideskweb'
data['salt'] = '16057996372935'
data['sign'] = '0965172abb459f8c7a791df4184bf51c'
data['lts'] = '1605799637293'
data['bv'] = 'f7d97c24a497388db1420108e6c3537b'
data['doctype'] = 'json'
data['version'] = '2.1'
data['keyfrom'] = 'fanyi.web'
data['action'] = 'FY_BY_REALTlME'
data = urllib.parse.urlencode(data).encode('utf-8')
response = urllib.request.urlopen(url,data)
html = response.read().decode('utf-8')

req = json.loads(html)
result = req['translateResult'][0][0]['tgt']
print(result)

Python爬虫爬取有道实现翻译功能
但是这个程序只能翻译一个单词,用完就废了。于是我在进行优化

import urllib.request
import urllib.parse
import json

def translate():
  centens = input('输入要翻译的语句:')
  url = 'http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule'
  head = {}#增加请求头,防反爬虫
  head['User-Agent'] = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36'
  data = {}#带上from data的数据进行请求
  data['i'] = centens
  data['from'] = 'AUTO'
  data['to'] = 'AUTO'
  data['smartresult'] = 'dict'
  data['client'] = 'fanyideskweb'
  data['salt'] = '16057996372935'
  data['sign'] = '0965172abb459f8c7a791df4184bf51c'
  data['lts'] = '1605799637293'
  data['bv'] = 'f7d97c24a497388db1420108e6c3537b'
  data['doctype'] = 'json'
  data['version'] = '2.1'
  data['keyfrom'] = 'fanyi.web'
  data['action'] = 'FY_BY_REALTlME'
  data = urllib.parse.urlencode(data).encode('utf-8')
  req = urllib.request.Request(url,data,head)
  response = urllib.request.urlopen(req)
  html = response.read().decode('utf-8')
  req = json.loads(html)
  result = req['translateResult'][0][0]['tgt']
  # print(f'中英互译的结果:{result}')
  return result
t = translate()
print(f'中英互译的结果:{t}')

优化完成,效果还行。

Python爬虫爬取有道实现翻译功能

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python发腾讯微博代码分享
Jan 10 Python
centos6.7安装python2.7.11的具体方法
Jan 16 Python
详解python中requirements.txt的一切
Mar 03 Python
Python基于Logistic回归建模计算某银行在降低贷款拖欠率的数据示例
Jan 23 Python
python IDLE 背景以及字体大小的修改方法
Jul 12 Python
Django使用 Bootstrap 样式修改书籍列表过程解析
Aug 09 Python
自定义django admin model表单提交的例子
Aug 23 Python
浅谈tensorflow中张量的提取值和赋值
Jan 19 Python
解决ROC曲线画出来只有一个点的问题
Feb 28 Python
Python接口自动化系列之unittest结合ddt的使用教程详解
Feb 23 Python
教你用python实现一个无界面的小型图书管理系统
May 21 Python
Python自动化之批量处理工作簿和工作表
Jun 03 Python
python爬虫中采集中遇到的问题整理
Nov 27 #Python
python 用opencv实现图像修复和图像金字塔
Nov 27 #Python
Python函数调用追踪实现代码
Nov 27 #Python
Numpy中np.max的用法及np.maximum区别
Nov 27 #Python
python 实现aes256加密
Nov 27 #Python
pandas使用函数批量处理数据(map、apply、applymap)
Nov 27 #Python
python3.7中安装paddleocr及paddlepaddle包的多种方法
Nov 27 #Python
You might like
PHP按行读取文件时删除换行符的3种方法
2014/05/04 PHP
PHP实现的连贯操作、链式操作实例
2014/07/08 PHP
详解Yii2.0 rules验证规则集合
2017/03/21 PHP
PHP基于imagick扩展实现合成图片的两种方法【附imagick扩展下载】
2017/11/14 PHP
CentOS7编译安装php7.1的教程详解
2019/04/18 PHP
JavaScript可否多线程? 深入理解JavaScript定时机制
2012/05/23 Javascript
JQuery的Ajax跨域请求原理概述及实例
2013/04/26 Javascript
extjs表格文本启用选择复制功能具体实现
2013/10/11 Javascript
JS删除字符串中重复字符方法
2014/03/09 Javascript
JS实现带有3D立体感的银灰色竖排折叠菜单代码
2015/10/20 Javascript
jQuery Ajax Post 回调函数不执行问题的解决方法
2016/08/15 Javascript
如何清除IE10+ input X 文本框的叉叉和密码输入框的眼睛图标
2016/12/21 Javascript
jQuery实现可拖拽3D万花筒旋转特效
2017/01/03 Javascript
利用Node.js+Koa框架实现前后端交互的方法
2017/02/27 Javascript
在vue-cli搭建的项目中增加后台mock接口的方法
2018/04/26 Javascript
vue踩坑记录之数组定义和赋值问题
2019/03/20 Javascript
bootstrap+spring boot实现面包屑导航功能(前端代码)
2019/10/09 Javascript
vue 开发之路由配置方法详解
2019/12/02 Javascript
如何通过JS实现日历简单算法
2020/10/14 Javascript
[01:57]2016完美“圣”典风云人物:国士无双专访
2016/12/04 DOTA
跟老齐学Python之用while来循环
2014/10/02 Python
python检索特定内容的文本文件实例
2018/06/05 Python
Python3使用pandas模块读写excel操作示例
2018/07/03 Python
使用Python将Mysql的查询数据导出到文件的方法
2019/02/25 Python
Python正则表达式急速入门(小结)
2019/12/16 Python
TensorFlow内存管理bfc算法实例
2020/02/03 Python
python 中不同包 类 方法 之间的调用详解
2020/03/09 Python
什么是静态路由?什么是动态路由?各自的特点是什么?
2015/09/16 面试题
军训的自我鉴定
2013/12/10 职场文书
四年的个人工作自我评价
2013/12/10 职场文书
读书活动总结范文
2014/04/26 职场文书
《鸟岛》教学反思
2014/04/26 职场文书
幼儿园工作总结2015
2015/04/01 职场文书
python实现简单反弹球游戏
2021/04/12 Python
Java常用函数式接口总结
2021/06/29 Java/Android
Python学习开发之图形用户界面详解
2021/08/23 Python