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的ORM框架SQLObject入门实例
Apr 28 Python
Django框架中处理URLconf中特定的URL的方法
Jul 20 Python
Python画图学习入门教程
Jul 01 Python
python实现求特征选择的信息增益
Dec 18 Python
如何通过雪花算法用Python实现一个简单的发号器
Jul 03 Python
Pycharm新建模板默认添加个人信息的实例
Jul 15 Python
浅谈python累加求和+奇偶数求和_break_continue
Feb 25 Python
谈谈Python:为什么类中的私有属性可以在外部赋值并访问
Mar 05 Python
解决keras加入lambda层时shape的问题
Jun 11 Python
Python3交互式shell ipython3安装及使用详解
Jul 11 Python
Python获取excel内容及相关操作代码实例
Aug 10 Python
Python私有属性私有方法应用实例解析
Sep 15 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
re0第二季蕾姆被制作组打入冷宫!艾米莉亚女主扶正,原因唏嘘
2020/04/02 日漫
多重?l件?合查?(二)
2006/10/09 PHP
PHP原理之异常机制深入分析
2010/08/08 PHP
PHP 设计模式之观察者模式介绍
2012/02/22 PHP
Zend Studio 实用快捷键一览表(精心整理)
2013/08/10 PHP
php文件上传 你真的掌握了吗
2016/11/28 PHP
AutoSave/自动存储功能实现
2007/03/24 Javascript
JavaScript高级程序设计(第3版)学习笔记7 js函数(上)
2012/10/11 Javascript
Jquery chosen动态设置值实例介绍
2013/08/08 Javascript
node.js中使用socket.io制作命名空间
2014/12/15 Javascript
JavaScript中的Number数字类型学习笔记
2016/05/26 Javascript
Bootstrap Table从服务器加载数据进行显示的实现方法
2016/09/29 Javascript
jQuery插件扩展操作入门示例
2017/01/16 Javascript
jQuery实现用户信息表格的添加和删除功能
2017/09/12 jQuery
Python random模块常用方法
2014/11/03 Python
使用Python中的greenlet包实现并发编程的入门教程
2015/04/16 Python
介绍Python的@property装饰器的用法
2015/04/28 Python
Python 操作MySQL详解及实例
2017/04/30 Python
Django自定义认证方式用法示例
2017/06/23 Python
python3实现全角和半角字符转换的方法示例
2017/09/21 Python
python得到windows自启动列表的方法
2018/10/14 Python
Python3使用xlrd、xlwt处理Excel方法数据
2020/02/28 Python
用Python 爬取猫眼电影数据分析《无名之辈》
2020/07/24 Python
移动端HTML5开发神器之vconsole详解
2020/12/15 HTML / CSS
澳大利亚最大的在线美发和美容零售商之一:My Hair Care & Beauty
2019/08/24 全球购物
客服文员岗位职责
2013/11/29 职场文书
七年级历史教学反思
2014/02/05 职场文书
班级道德讲堂实施方案
2014/02/24 职场文书
公司演讲稿开场白
2014/08/25 职场文书
2014年班级工作总结范文
2014/12/23 职场文书
2015年老干部工作总结
2015/04/23 职场文书
2015年基层党建工作总结
2015/05/14 职场文书
Redis 配置文件重要属性的具体使用
2021/05/20 Redis
浅析Python中的套接字编程
2021/06/22 Python
webpack的移动端适配方案小结
2021/07/25 Javascript
JavaScript实例 ODO List分析
2022/01/22 Javascript