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连接oracle数据库实例
Oct 17 Python
python中日期和时间格式化输出的方法小结
Mar 19 Python
解决每次打开pycharm直接进入项目的问题
Oct 28 Python
python 实现图片旋转 上下左右 180度旋转的示例
Jan 24 Python
Python 抓取微信公众号账号信息的方法
Jun 14 Python
Linux下远程连接Jupyter+pyspark部署教程
Jun 21 Python
Django中自定义admin Xadmin的实现代码
Aug 09 Python
Python爬虫之urllib基础用法教程
Oct 12 Python
Python制作简易版小工具之计算天数的实现思路
Feb 13 Python
windows下Pycharm安装opencv的多种方法
Mar 05 Python
利用python实现平稳时间序列的建模方式
Jun 03 Python
python实现三阶魔方还原的示例代码
Apr 28 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/10/23 PHP
关于二级目录拖拽排序的实现(源码示例下载)
2013/04/26 PHP
PHP中的Streams详细介绍
2014/11/12 PHP
如何重写Laravel异常处理类详解
2020/12/20 PHP
jquery获取自定义属性(attr和prop)实例介绍
2013/04/21 Javascript
如何让页面加载完成后执行js
2013/06/26 Javascript
javascript动态的改变IFrame的高度实现自动伸展
2013/10/12 Javascript
Javascript遍历Html Table示例(包括内容和属性值)
2014/07/08 Javascript
js仿苹果iwatch外观的计时器代码分享
2015/08/26 Javascript
前端js实现文件的断点续传 后端PHP文件接收
2016/10/14 Javascript
js addDqmForPP给标签内属性值加上双引号的函数
2016/12/24 Javascript
js 颜色选择插件
2017/01/23 Javascript
微信小程序 下拉菜单的实现
2017/04/06 Javascript
vue.js 上传图片实例代码
2017/06/22 Javascript
js微信应用场景之微信音乐相册案例分享
2017/08/11 Javascript
微信小程序使用radio显示单选项功能【附源码下载】
2017/12/11 Javascript
python新手经常遇到的17个错误分析
2014/07/30 Python
Python深入学习之内存管理
2014/08/31 Python
举例讲解Python设计模式编程中的访问者与观察者模式
2016/01/26 Python
Python多进程同步简单实现代码
2016/04/27 Python
python利用拉链法实现字典方法示例
2017/03/25 Python
名片管理系统python版
2018/01/11 Python
python3 实现一行输入,空格隔开的示例
2018/11/14 Python
Python3安装psycopy2以及遇到问题解决方法
2019/07/03 Python
Python使用urllib模块对URL网址中的中文编码与解码实例详解
2020/02/18 Python
keras中的backend.clip用法
2020/05/22 Python
python求解汉诺塔游戏
2020/07/09 Python
Python sqlalchemy时间戳及密码管理实现代码详解
2020/08/01 Python
Viking Direct荷兰:购买办公用品
2019/06/20 全球购物
博柏利美国官方网站:Burberry美国
2020/11/19 全球购物
JavaScript获取当前url根目录(路径)
2014/02/19 面试题
《珍珠泉》教学反思
2014/02/20 职场文书
2014年妇委会工作总结
2014/12/10 职场文书
三八红旗手事迹材料
2014/12/26 职场文书
青涩记忆观后感
2015/06/18 职场文书
Oracle锁表解决方法的详细记录
2022/06/05 Oracle