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 相关文章推荐
python3图片转换二进制存入mysql
Dec 06 Python
python实现的udp协议Server和Client代码实例
Jun 04 Python
在arcgis使用python脚本进行字段计算时是如何解决中文问题的
Oct 18 Python
python 添加用户设置密码并发邮件给root用户
Jul 25 Python
Python使用matplotlib绘制余弦的散点图示例
Mar 14 Python
PyQt5每天必学之关闭窗口
Apr 19 Python
Python3爬虫使用Fidder实现APP爬取示例
Nov 27 Python
python设置环境变量的原因和方法
Jun 24 Python
python程序运行进程、使用时间、剩余时间显示功能的实现代码
Jul 11 Python
python处理document文档保留原样式
Sep 23 Python
Python Spyder 调出缩进对齐线的操作
Feb 26 Python
Python中glob库实现文件名的匹配
Jun 18 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来处理多个提交任务
2008/05/08 PHP
PHP与C#分别格式化文件大小的代码
2011/05/14 PHP
基于php上传图片重命名的6种解决方法的详细介绍
2013/04/28 PHP
探讨PHP函数ip2long转换IP时数值太大产生负数的解决方法
2013/06/06 PHP
thinkPHP5.0框架整体架构总览【应用,模块,MVC,驱动,行为,命名空间等】
2017/03/25 PHP
php数组实现根据某个键值将相同键值合并生成新二维数组的方法
2017/04/26 PHP
PHP使用Redis实现防止大并发下二次写入的方法
2017/10/09 PHP
理解Javascript_09_Function与Object
2010/10/16 Javascript
页面定时刷新(1秒刷新一次)
2013/11/22 Javascript
Jquery实现Div上下移动示例
2014/04/23 Javascript
jQuery实现菜单感应鼠标滑动动画效果的方法
2015/02/28 Javascript
JavaScript中使用Callback控制流程介绍
2015/03/16 Javascript
Node.js的环境安装配置(使用nvm方式)
2016/10/11 Javascript
JavaScript模块化之使用requireJS按需加载
2017/04/12 Javascript
详解vue-router 2.0 常用基础知识点之router.push()
2017/05/10 Javascript
基于input框覆盖掉数字英文的实例讲解
2017/07/21 Javascript
关于前后端json数据的发送与接收详解
2017/07/30 Javascript
利用ES6实现单例模式及其应用详解
2017/12/09 Javascript
vue项目总结之文件夹结构配置详解
2017/12/13 Javascript
vue-for循环嵌套操作示例
2019/01/28 Javascript
python中实现php的var_dump函数功能
2015/01/21 Python
python3写的简单本地文件上传服务器实例
2018/06/04 Python
python自定义时钟类、定时任务类
2021/02/22 Python
Python 限定函数参数的类型及默认值方式
2019/12/24 Python
使用bandit对目标python代码进行安全函数扫描的案例分析
2021/01/27 Python
Manuka Doctor美国官网:麦卢卡蜂蜜和蜂毒护肤
2016/12/25 全球购物
玩具反斗城西班牙网上商城:ToysRUs西班牙
2017/01/19 全球购物
Foot Locker意大利官网:全球领先的运动鞋和服装零售商
2017/05/30 全球购物
Lou & Grey美国官网:主打舒适性面料服饰
2017/12/21 全球购物
当当网官方旗舰店:中国图书销售夺金品牌
2018/04/02 全球购物
出国留学自荐信
2013/10/25 职场文书
毕业生大学生活自我总结
2014/01/31 职场文书
出生医学证明书
2014/09/15 职场文书
单位委托书范本(3篇)
2014/09/18 职场文书
学习雷锋主题班会
2015/08/14 职场文书
Windows server 2003卸载和安装IIS的图文教程
2022/07/15 Servers