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装饰器 免去调用父类构造函数的麻烦
May 18 Python
python实现爬虫下载美女图片
Jul 14 Python
Python网络编程中urllib2模块的用法总结
Jul 12 Python
python下os模块强大的重命名方法renames详解
Mar 07 Python
分享一个可以生成各种进制格式IP的小工具实例代码
Jul 28 Python
Python Flask-web表单使用详解
Nov 18 Python
Python比较2个时间大小的实现方法
Apr 10 Python
python3.5绘制随机漫步图
Aug 27 Python
使用Python处理BAM的方法
Sep 28 Python
Python一个简单的通信程序(客户端 服务器)
Mar 06 Python
Python爬虫实现验证码登录代码实例
May 10 Python
python一些性能分析的技巧
Aug 30 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迭代器实现斐波纳契数列的函数
2013/11/12 PHP
php格式化json函数示例代码
2016/05/12 PHP
php中namespace及use用法分析
2016/12/06 PHP
thinkphp5.1框架模板赋值与变量输出示例
2020/05/25 PHP
js关闭子窗体刷新父窗体实现方法
2012/12/04 Javascript
jquery mobile的触控点击事件会多次触发问题的解决方法
2014/05/08 Javascript
JS实现超炫网页烟花动画效果的方法
2015/03/02 Javascript
Three.js学习之Lamber材质和Phong材质
2016/08/04 Javascript
JS实现鼠标滑过显示边框的菜单效果
2016/09/21 Javascript
简单理解vue中track-by属性
2016/10/26 Javascript
canvas学习之API整理笔记(一)
2016/12/29 Javascript
详解如何将angular-ui的图片轮播组件封装成一个指令
2017/05/09 Javascript
微信小程序滑动选择器的实现代码
2018/08/10 Javascript
解决Vue2.0中使用less给元素添加背景图片出现的问题
2018/09/03 Javascript
详解Node.js读写中文内容文件操作
2018/10/10 Javascript
js实现点击图片在屏幕中间弹出放大效果
2019/09/11 Javascript
layui table单元格事件修改值的方法
2019/09/24 Javascript
[47:38]Optic vs VGJ.S 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
[01:54]TI珍贵瞬间系列(三):翻盘
2020/08/28 DOTA
python中文乱码的解决方法
2013/11/04 Python
HTML中使用python屏蔽一些基本功能的方法
2017/07/07 Python
在python3环境下的Django中使用MySQL数据库的实例
2017/08/29 Python
在Pandas中DataFrame数据合并,连接(concat,merge,join)的实例
2019/01/29 Python
Python实现字典按key或者value进行排序操作示例【sorted】
2019/05/03 Python
Django中如何使用sass的方法步骤
2019/07/09 Python
Pycharm Git 设置方法
2020/09/15 Python
如何使用PHP session
2015/04/21 面试题
秘书专业自荐信范文
2013/12/26 职场文书
学术会议邀请函范文
2014/01/22 职场文书
中文教师求职信
2014/02/22 职场文书
自愿离婚协议书范本
2014/09/13 职场文书
地下停车场租赁协议范本
2014/10/07 职场文书
齐云山导游词
2015/02/06 职场文书
个人求职信格式范文
2015/03/20 职场文书
同步小康驻村工作简报
2015/07/20 职场文书
干部作风纪律整顿心得体会
2016/01/23 职场文书