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中针对函数处理的特殊方法
Mar 06 Python
python小技巧之批量抓取美女图片
Jun 06 Python
Windows系统下使用flup搭建Nginx和Python环境的方法
Dec 25 Python
python实现生命游戏的示例代码(Game of Life)
Jan 24 Python
Python批量发送post请求的实现代码
May 05 Python
Python如何爬取实时变化的WebSocket数据的方法
Mar 09 Python
python如何读取bin文件并下发串口
Jul 05 Python
python使用writerows写csv文件产生多余空行的处理方法
Aug 01 Python
Python中关于浮点数的冷知识
Sep 22 Python
jupyter notebook的安装与使用详解
May 18 Python
python中关于数据类型的学习笔记
Jul 19 Python
史上最详细的Python打包成exe文件教程
Jan 17 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 DOS攻击实现代码(附如何防范)
2012/05/29 PHP
php使用fgetcsv读取csv文件出现乱码的解决方法
2014/11/08 PHP
PHP 中提示undefined index如何解决(多种方法)
2016/03/16 PHP
PHP实现163邮箱自动发送邮件
2016/03/29 PHP
[企业公众号]升级到[企业微信]之后发送消息失败的解决方法
2017/06/30 PHP
阻止JavaScript事件冒泡传递(cancelBubble 、stopPropagation)
2007/05/08 Javascript
jquery 屏蔽一个区域内的所有元素,禁止输入
2009/10/22 Javascript
javascript获取所有同类checkbox选项(实例代码)
2013/11/07 Javascript
判断文件是否正在被使用的JS代码
2013/12/21 Javascript
微信中一些常用的js方法汇总
2015/03/12 Javascript
javascript获取select标签选中的值
2016/06/04 Javascript
jQuery Ztree行政地区树状展示(点击加载)
2016/11/09 Javascript
vue-star评星组件开发实例
2018/03/01 Javascript
解决iView中时间控件选择的时间总是少一天的问题
2018/03/15 Javascript
vue axios 表单提交上传图片的实例
2018/03/16 Javascript
JS实现的杨辉三角【帕斯卡三角形】算法示例
2019/02/26 Javascript
Vue中Table组件Select的勾选和取消勾选事件详解
2019/03/19 Javascript
Vue利用Blob下载原生二进制数组文件
2019/09/25 Javascript
Vue数字输入框组件使用方法详解
2020/02/10 Javascript
使用vue实现通过变量动态拼接url
2020/07/22 Javascript
python检测远程服务器tcp端口的方法
2015/03/14 Python
利用Django框架中select_related和prefetch_related函数对数据库查询优化
2015/04/01 Python
Python中用于去除空格的三个函数的使用小结
2015/04/07 Python
python 读取目录下csv文件并绘制曲线v111的方法
2018/07/06 Python
opencv实现静态手势识别 opencv实现剪刀石头布游戏
2019/01/22 Python
Python插件机制实现详解
2020/05/04 Python
什么是Python中的顺序表
2020/06/02 Python
罗德与泰勒百货官网:Lord & Taylor
2016/08/12 全球购物
菲律宾最大的网上花店和礼品店:PhilFlower.com
2018/02/09 全球购物
村官学习十八大感想
2014/01/15 职场文书
秋季运动会表扬稿
2014/01/16 职场文书
端午节活动策划方案
2014/03/09 职场文书
2014年四风问题自我剖析材料
2014/09/15 职场文书
2014年人民警察入党思想汇报
2014/10/12 职场文书
高三语文教学反思
2016/02/16 职场文书
浅谈Python协程asyncio
2021/06/20 Python