python学习笔记:"爬虫+有道词典"实现一个简单的英译汉程序
1.有道的翻译

Fig1

Fig2

Fig3

Fig4
再次点击"自动翻译"->选中'Network'->选中'第一项',如下:

Fig5
然后显示出如下内容,红框画出的部分是等会编写代码需要的地方:

Fig6

Fig7
再看看翻译的结果:

Fig8
2.python实现英译汉:
原理:把需要翻译的内容输入给有道词典,然后通过程序把翻译的结果爬下来。
# -*- coding:utf-8 -*-
"""
Created on Sun May 03 09:36:12 2015 @author: 90Zeng
""" import urllib
import json # 注意这里用unicode编码,否则会显示乱码
content = input(u"请输入要翻译的内容:")
# 网址是Fig6中的 Response URL
url = 'http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule&smartresult=ugc&sessionFrom=http://www.youdao.com/'
# 爬下来的数据 data格式是Fig7中的 Form Data
data = {}
data['type'] = 'AUTO'
data['i'] = content
data['doctype'] = 'json'
data['xmlVersion'] = '1.6'
data['keyfrom'] = 'fanyi.web'
data['ue'] = 'UTF-8'
data['typoResult'] = 'true' # 数据编码
data = urllib.urlencode(data) # 按照data的格式从url爬内容
response = urllib.urlopen(url, data)
# 将爬到的内容读出到变量字符串html,
html = response.read()
# 将字符串转换成Fig8所示的字典形式
target = json.loads(html)
# 根据Fig8的格式,取出最终的翻译结果
result = target["translateResult"][0][0]['tgt'] # 这里用unicode显示中文,避免乱码
print(u"翻译结果:%s" % (target["translateResult"][0][0]['tgt']))
运行:


学习资料来源:小甲鱼的视频‘零基础入门python’
python学习笔记:"爬虫+有道词典"实现一个简单的英译汉程序的更多相关文章
- python "爬虫+有道词典"实现一个简单翻译程序
抓包软件使用的是Fiddler4 新版的查询接口 比较负责,引入了salt和sign http://fanyi.youdao.com/translate?smartresult=dict&sm ...
- ZooKeeper学习笔记三:使用ZooKeeper实现一个简单的配置中心
作者:Grey 原文地址:ZooKeeper学习笔记三:使用ZooKeeper实现一个简单的配置中心 前置知识 完成ZooKeeper集群搭建以及熟悉ZooKeeperAPI基本使用 需求 很多程序往 ...
- ZooKeeper学习笔记四:使用ZooKeeper实现一个简单的分布式锁
作者:Grey 原文地址: ZooKeeper学习笔记四:使用ZooKeeper实现一个简单的分布式锁 前置知识 完成ZooKeeper集群搭建以及熟悉ZooKeeperAPI基本使用 需求 当多个进 ...
- python学习笔记——爬虫学习中的重要库urllib
1 urllib概述 1.1 urllib库中的模块类型 urllib是python内置的http请求库 其提供了如下功能: (1)error 异常处理模块 (2)parse url解析模块 (3)r ...
- Python学习笔记(二)网络编程的简单示例
Python中的网络编程比C语言中要简洁很多,毕竟封装了大量的细节. 所以这里不再介绍网络编程的基本知识.而且我认为,从Python学习网络编程不是一个明智的选择. 简单的TCP连接 服务器代码如 ...
- python学习笔记——爬虫中提取网页中的信息
1 数据类型 网页中的数据类型可分为结构化数据.半结构化数据.非结构化数据三种 1.1 结构化数据 常见的是MySQL,表现为二维形式的数据 1.2 半结构化数据 是结构化数据的一种形式,并不符合关系 ...
- python学习笔记——爬虫的抓取策略
1 深度优先算法 2 广度/宽度优先策略 3 完全二叉树遍历结果 深度优先遍历的结果:[1, 3, 5, 7, 9, 4, 12, 11, 2, 6, 14, 13, 8, 10] 广度优先遍历的结果 ...
- [Python学习笔记]爬虫
要使用Python 抓取网页,首先我们要学习下面四个模块: 包 作用 webbrowser 打开浏览器获取指定页面: requests 从因特网下载文件和网页: Beautiful Soup 解析HT ...
- Python学习笔记4-如何快速的学会一个Python的模块、方法、关键字
想要快速的学会一个Python的模块和方法,两个函数必须要知道,那就是dir()和help() dir():能够快速的以集合的型式列出该模块下的所有内容(类.常量.方法)例: #--encoding: ...
随机推荐
- JeeSite框架中httpSession.invalidate();无效
想要实现一个功能:同一个用户在两个不同的浏览器中登录,后面的踢掉之前的登录. 本来的思路是在httpSession监听器中进行判断.但是在使用httpSession.invalidate();销毁Se ...
- Python的单向链表实现
思路 链表由节点组成,先规定节点(Node),包含data和指向下个节点的next 初始化 data当然就是传入的data了,next指向None 添加 分两种情况: 链表为空,那么头节点和尾节点都指 ...
- luogu1970 花匠(dp)
设f1[i]表示以1..i中某个合法序列的长度,而且最后一位是较大的 f2[i]表示以1..i中某个合法序列的长度,而且最后一位是较小的 那么就有$f1[i]=max\{f2[j]+1\},(j< ...
- Java NIO -- 阻塞和非阻塞
传统的 IO 流都是阻塞式的.也就是说,当一个线程调用 read() 或 write()时,该线程被阻塞,直到有一些数据被读取或写入,该线程在此期间不能执行其他任务.因此,在完成网络通信进行 IO操作 ...
- 【HDU3085】nightmare2 双向BFS
对于搜索树分支很多且有明确起点和终点的情况时,可以采用双向搜索来减小搜索树的大小. 对于双向BFS来说,与单向最大的不同是双向BFS需要按层扩展,表示可能到达的区域.而单向BFS则是按照单个节点进行扩 ...
- 关于vue-devtools安装
两种方法. 第一种:使用https://chrome.google.com/webstore/detail/vuejs-devtools/nhdogjmejiglipccpnnnanhbledajbp ...
- codeblocks 支持多个exe同时执行
如果看总时间,没什么用,因为总资源是一样的. 但是可以做到:吃饭前,执行多个程序,吃完饭,所有程序执行完.
- java用poi读取Excel表格中的数据
Java读写Excel的包是Apache POI(项目地址:http://poi.apache.org/),因此需要先获取POI的jar包,本实验使用的是POI 3.9稳定版.Apache POI 代 ...
- (转)hdu 3436Queue-jumpers--splay+离散化
dalao博客 http://acm.hdu.edu.cn/showproblem.php?pid=3436 题意:初始排列1到N,现在要你实现3种操作: 将x插入到队头去 询问x当前的位置 询问第x ...
- marshaller unmarshaller解析xml和读取xml
JAXB(Java Architecture for XML Binding) 是一个业界的标准,是一项可以根据XML Schema产生Java类的技术.该过程中,JAXB也提供了将XML实例文档反向 ...