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写的一个简单监控系统
Jun 19 Python
django反向解析URL和URL命名空间的方法
Jun 05 Python
python实现维吉尼亚加密法
Mar 20 Python
如何使用Python标准库进行性能测试
Jun 25 Python
python 批量解压压缩文件的实例代码
Jun 27 Python
Python整数与Numpy数据溢出问题解决
Sep 11 Python
Python 捕获代码中所有异常的方法
Aug 03 Python
python利用xlsxwriter模块 操作 Excel
Oct 14 Python
python 基于Apscheduler实现定时任务
Dec 15 Python
Python脚本调试工具安装过程
Jan 11 Python
Python就将所有的英文单词首字母变成大写
Feb 12 Python
python如何查找列表中元素的位置
May 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中判断字符串是否全是中文或含有中文的实现代码
2011/09/16 PHP
laravel安装和配置教程
2014/10/29 PHP
PDO防注入原理分析以及注意事项
2015/02/25 PHP
PHP实现的构造sql语句类实例
2016/02/03 PHP
js动态添加事件并可传参数示例代码
2013/10/21 Javascript
javascript setinterval 的正确语法如何书写
2014/06/17 Javascript
jQuery判断是否存在滚动条的简单方法
2016/09/17 Javascript
浅析vue数据绑定
2017/01/17 Javascript
使用Node.js搭建静态资源服务详细教程
2017/08/02 Javascript
mpvue构建小程序的方法(步骤+地址)
2018/05/22 Javascript
Vue中使用 setTimeout() setInterval()函数的问题
2018/09/13 Javascript
Koa日志中间件封装开发详解
2019/03/09 Javascript
微信小程序实现卡片层叠滑动效果
2019/06/21 Javascript
一起来了解一下JavaScript的预编译(小结)
2021/03/01 Javascript
[01:20]DOTA2上海特级锦标赛现场采访:谁的ID最受青睐
2016/03/25 DOTA
Python ZipFile模块详解
2013/11/01 Python
Python使用PIL库实现验证码图片的方法
2016/03/11 Python
Android 兼容性问题:java.lang.UnsupportedOperationException解决办法
2017/03/19 Python
Python 中 list 的各项操作技巧
2017/04/13 Python
实用自动化运维Python脚本分享
2018/06/04 Python
python requests.post带head和body的实例
2019/01/02 Python
PyQt5显示GIF图片的方法
2019/06/17 Python
python 一篇文章搞懂装饰器所有用法(建议收藏)
2019/08/23 Python
手把手教你Python yLab的绘制折线图的画法
2019/10/23 Python
Python使用py2neo操作图数据库neo4j的方法详解
2020/01/13 Python
Expedia爱尔兰:酒店、机票、租车及廉价假期
2017/01/02 全球购物
中国最大的潮流商品购物网站:YOHO!BUY有货
2017/01/07 全球购物
联想香港官方网站及网店:Lenovo香港
2018/04/13 全球购物
计算机专业个人求职信范例
2013/09/23 职场文书
大学毕业生求职自荐信
2014/02/20 职场文书
水污染治理工程专业求职信
2014/06/14 职场文书
旅游活动总结
2014/08/27 职场文书
2015年感恩父亲节活动策划方案
2015/05/05 职场文书
劳动仲裁代理词范文
2015/05/25 职场文书
大学生受助感言
2015/08/01 职场文书
建立共青团委员会的请示
2019/04/02 职场文书