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 18 Python
Python与shell的3种交互方式介绍
Apr 11 Python
深入理解NumPy简明教程---数组2
Dec 17 Python
python如何为创建大量实例节省内存
Mar 20 Python
对web.py设置favicon.ico的方法详解
Dec 04 Python
Python爬虫 批量爬取下载抖音视频代码实例
Aug 16 Python
python 表格打印代码实例解析
Oct 12 Python
python实现梯度下降和逻辑回归
Mar 24 Python
Pyspark获取并处理RDD数据代码实例
Mar 27 Python
Keras自定义实现带masking的meanpooling层方式
Jun 16 Python
django中cookiecutter的使用教程
Dec 03 Python
使用Python+OpenCV进行卡类型及16位卡号数字的OCR功能
Aug 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
Look And Say 序列php实现代码
2011/05/22 PHP
PHP指定截取字符串中的中英文或数字字符的实例分享
2016/03/18 PHP
PHP简单数据库操作类实例【支持增删改查及链式操作】
2016/10/10 PHP
PHP面向对象程序设计(OOP)之方法重写(override)操作示例
2018/12/21 PHP
JavaScript 变量基础知识
2009/11/07 Javascript
自己动手制作jquery插件之自动添加删除行功能介绍
2011/10/14 Javascript
ECMAScript 创建自己的js类库
2012/11/22 Javascript
自定义的一个简单时尚js下拉选择框
2013/11/20 Javascript
Jquery插件编写简明教程
2014/03/25 Javascript
最新最热最实用的15个jQuery插件汇总
2015/07/05 Javascript
Javascript实现检测客户端类型代码封包
2015/12/03 Javascript
Markdown与Bootstrap相结合实现图片自适应属性
2016/05/04 Javascript
jQueryUI Sortable 应用Demo(分享)
2017/09/07 jQuery
微信小程序实现下拉菜单切换效果
2020/03/30 Javascript
Vue 组件注册全解析
2020/12/17 Vue.js
[01:28:24]NAVI vs VG Supermajor 败者组 BO3 第三场 6.5
2018/06/06 DOTA
Python+Wordpress制作小说站
2017/04/14 Python
python 设置文件编码格式的实现方法
2017/12/21 Python
Python获取本机所有网卡ip,掩码和广播地址实例代码
2018/01/22 Python
Python爬虫框架scrapy实现downloader_middleware设置proxy代理功能示例
2018/08/04 Python
python读取TXT每行,并存到LIST中的方法
2018/10/26 Python
Python实现的统计文章单词次数功能示例
2019/07/08 Python
tensorflow查看ckpt各节点名称实例
2020/01/21 Python
PyCharm 无法 import pandas 程序卡住的解决方式
2020/03/09 Python
python代码xml转txt实例
2020/03/10 Python
windows python3安装Jupyter Notebooks教程
2020/04/13 Python
Python3基于print打印带颜色字符串
2020/07/06 Python
Amaze UI 文件选择域的示例代码
2020/08/26 HTML / CSS
日本民宿预约平台:STAY JAPAN
2017/07/01 全球购物
国际花店:Pickup Flowers
2020/04/10 全球购物
求职信的七个关键技巧
2014/02/05 职场文书
电视购物广告词
2014/03/19 职场文书
政治学求职信
2014/06/03 职场文书
影子教师研修方案
2014/06/14 职场文书
管理失职检讨书
2015/05/05 职场文书
2015毕业设计工作总结
2015/07/24 职场文书