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探索之创建二叉树
Oct 25 Python
Python socket实现简单聊天室
Apr 01 Python
解决csv.writer写入文件有多余的空行问题
Jul 06 Python
Python实现查找二叉搜索树第k大的节点功能示例
Jan 24 Python
python实现在函数中修改变量值的方法
Jul 16 Python
python自动分箱,计算woe,iv的实例代码
Nov 22 Python
python @propert装饰器使用方法原理解析
Dec 25 Python
python如何求数组连续最大和的示例代码
Feb 04 Python
python解释器安装教程的方法步骤
Jul 02 Python
pip已经安装好第三方库但pycharm中import时还是标红的解决方案
Oct 09 Python
Python操作PostgreSql数据库的方法(基本的增删改查)
Dec 29 Python
python通过新建环境安装tfx的问题
May 20 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
从C/C++迁移到PHP——判断字符类型的函数
2006/10/09 PHP
php存储过程调用实例代码
2013/02/03 PHP
php MessagePack介绍
2013/10/06 PHP
学习php中的正则表达式
2014/08/17 PHP
PHP程序中的文件锁、互斥锁、读写锁使用技巧解析
2016/03/21 PHP
PHP实现基于PDO扩展连接PostgreSQL对象关系数据库示例
2018/03/31 PHP
javascript判断ie浏览器6/7版本加载不同样式表的实现代码
2011/12/26 Javascript
jquery解决图片路径不存在执行替换路径
2013/02/06 Javascript
js统计页面的来访次数实现代码
2014/05/09 Javascript
PHP结合jQuery实现红蓝投票功能特效
2015/07/22 Javascript
JavaScript黑洞数字之运算路线查找算法(递归算法)实例
2016/01/28 Javascript
jQuery 生成svg矢量二维码
2016/08/09 Javascript
JS克隆,属性,数组,对象,函数实例分析
2016/11/26 Javascript
微信小程序 wx.uploadFile无法上传解决办法
2016/12/14 Javascript
javascript 玩转Date对象(实例讲解)
2017/07/11 Javascript
javaScript和jQuery自动加载简单代码实现方法
2017/11/24 jQuery
nodejs的路径问题的解决
2018/06/30 NodeJs
JavaScript数组去重的方法总结【12种方法,号称史上最全】
2019/02/28 Javascript
详解Vue 如何监听Array的变化
2019/06/06 Javascript
使用layui实现树形结构的方法
2019/09/20 Javascript
Javascript Symbol原理及使用方法解析
2020/10/22 Javascript
py中的目录与文件判别代码
2008/07/16 Python
python 输入一个数n,求n个数求乘或求和的实例
2018/11/13 Python
Python实现合并两个有序链表的方法示例
2019/01/31 Python
Python产生一个数值范围内的不重复的随机数的实现方法
2019/08/21 Python
使用turtle绘制五角星、分形树
2019/10/06 Python
用python画一只可爱的皮卡丘实例
2019/11/21 Python
python学生管理系统的实现
2020/04/05 Python
django正续或者倒序查库实例
2020/05/19 Python
Python用类实现扑克牌发牌的示例代码
2020/06/01 Python
澳大利亚游乐场设备品牌:Lifespan Kids
2019/05/24 全球购物
Yves Rocher捷克官方网站:植物化妆品的创造者
2019/07/31 全球购物
企业文化宣传标语
2014/06/09 职场文书
优秀学生干部主要事迹材料
2015/11/04 职场文书
Python实现对齐打印 format函数的用法
2022/04/28 Python
使用HBuilder制作一个简单的HTML5网页
2022/07/07 HTML / CSS