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标准库之随机数 (math包、random包)介绍
Nov 25 Python
详解Python中的Descriptor描述符类
Jun 14 Python
Python 实现 贪吃蛇大作战 代码分享
Sep 07 Python
Python标准库inspect的具体使用方法
Dec 06 Python
python获取酷狗音乐top500的下载地址 MP3格式
Apr 17 Python
python实现飞机大战
Sep 11 Python
python爬虫获取百度首页内容教学
Dec 23 Python
Django 1.10以上版本 url 配置注意事项详解
Aug 05 Python
pytorch之inception_v3的实现案例
Jan 06 Python
如何使用pycharm连接Databricks的步骤详解
Sep 23 Python
python多线程和多进程关系详解
Dec 14 Python
Python selenium模拟网页点击爬虫交管12123违章数据
May 26 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
PHP5 的对象赋值机制介绍
2011/08/02 PHP
php curl 伪造IP来源的实例代码
2012/11/01 PHP
基于PHP读取TXT文件向数据库导入海量数据的方法
2013/04/23 PHP
ThinkPHP项目分组配置方法分析
2016/03/23 PHP
php实现微信企业号支付个人的方法详解
2017/07/26 PHP
Yii2.0框架实现带分页的多条件搜索功能示例
2019/02/20 PHP
PHP7生产环境队列Beanstalkd用法详解
2020/05/19 PHP
JQuery从头学起第一讲
2010/07/04 Javascript
JS localStorage实现本地缓存的方法
2013/06/22 Javascript
toggle一个div显示或隐藏且可扩展成自定义下拉框
2013/09/12 Javascript
jquery制作漂亮的弹出层提示消息特效
2014/12/23 Javascript
浅谈JSON.parse()和JSON.stringify()
2015/07/14 Javascript
jQuery实现Email邮箱地址自动补全功能代码
2015/11/03 Javascript
微信js-sdk界面操作接口用法示例
2016/10/12 Javascript
javascript添加前置0(补零)的几种方法
2017/01/05 Javascript
JSON基本语法及与JavaScript的异同实例分析
2019/01/04 Javascript
mpvue全局引入sass文件的方法步骤
2019/03/06 Javascript
使用jquery的cookie实现登录页记住用户名和密码的方法
2019/03/13 jQuery
Webpack4+Babel7+ES6兼容IE8的实现
2019/04/10 Javascript
[50:59]2018DOTA2亚洲邀请赛 4.7 总决赛 LGD vs Mineski第四场
2018/04/10 DOTA
[01:11:21]DOTA2-DPC中国联赛 正赛 Phoenix vs CDEC BO3 第三场 3月7日
2021/03/11 DOTA
Python中使用第三方库xlutils来追加写入Excel文件示例
2015/04/05 Python
PyChar学习教程之自定义文件与代码模板详解
2017/07/17 Python
Python代码实现KNN算法
2017/12/20 Python
pyqt5自定义信号实例解析
2018/01/31 Python
利用python循环创建多个文件的方法
2018/10/25 Python
Linux下Python安装完成后使用pip命令的详细教程
2018/11/22 Python
Python通过Pillow实现图片对比
2020/04/29 Python
如何学习Python time模块
2020/06/03 Python
python 实现超级玛丽游戏
2020/11/25 Python
奥地利手表、香水、化妆品和珠宝购物网站:Brasty.at
2021/01/17 全球购物
迟到检讨书500字
2014/02/05 职场文书
婚礼秀策划方案
2014/05/19 职场文书
法语专业求职信
2014/07/20 职场文书
2014年培训工作总结范文
2014/11/27 职场文书
飞屋环游记观后感
2015/06/08 职场文书