python find(urlopen.read())_Python小白必看之urlopen()详解
一. 简介
urllib.request.urlopen()函数用于实现对目标url的访问。
函数原型如下:urllib.request.urlopen(url, data=None, [timeout, ]*, cafile=None, capath=None, cadefault=False, context=None)
url: 需要打开的网址
data:Post提交的数据
timeout:设置网站的访问超时时间
直接用urllib.request模块的urlopen()获取页面,page的数据格式为bytes类型,需要decode()解码,转换成str类型。
二. 函数参数介绍
1. url 参数:目标资源在网路中的位置。可以是一个表示URL的字符串(如:http://www.pythontab.com/);也可以是一个urllib.request对象,详细介绍请跳转
2. data参数:data用来指明发往服务器请求中的额外的参数信息(如:在线翻译,在线答题等提交的内容),data默认是None,此时以GET方式发送请求;当用户给出data参数的时候,改为POST方式发送请求。
3. timeout:设置网站的访问超时时间
4. cafile、capath、cadefault 参数:用于实现可信任的CA证书的HTTP请求。(基本上很少用)
5. context参数:实现SSL加密传输。(基本上很少用)
三. 返回处理方法详解
urlopen返回对象提供方法:
read() , readline() ,readlines() , fileno() , close() :对HTTPResponse类型数据进行操作
info():返回HTTPMessage对象,表示远程服务器返回的头信息
getcode():返回Http状态码。如果是http请求,200请求成功完成;404网址未找到
geturl():返回请求的url
四. 版本区别, 注意事项
python2和python3在导入urlrequest的方式都不一样。
python2是这样:import urllib2
而python3里面把urllib分开了,分成了urlrequest和urlerror,在这里我们只需导入urlrequest即可。from urllib.request import urlopen
五. 实例
下面这个程序,实现了urlopen()函数的大部分功能,特别是data参数。data自定义,data格式转换,数据的编码encode()和解码decode()。#coding=utf-8
#Python3.x
'''
利用有道翻译进行在线翻译
'''
import urllib.request
import urllib.parse
import json
def traslate(words):
#目标URL
targetURL = "http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule&smartresult=ugc&sessionFrom=null"
#用户自定义表单,words表示的是用户要翻译的内容。这里使用的是dict类型,也可以使用元组列表(已经试过的)。
data = {}
data['type'] = 'AUTO'
data['i'] = words
data['doctype'] = 'json'
data['xmlVersion'] = '1.8'
data['keyfrom'] = 'fanyi.web'
data['ue'] = 'UTF-8'
data['action'] = 'FY_BY_CLICKBUTTON'
data['typoResult'] = 'true'
#将自定义data转换成标准格式
data = urllib.parse.urlencode(data).encode('utf-8')
#发送用户请求
html = urllib.request.urlopen(targetURL, data)
#读取并解码内容
rst = html.read().decode("utf-8")
rst_dict = json.loads(rst)
return rst_dict['translateResult'][0][0]['tgt']
if __name__ == "__main__":
print("输入字母q表示退出")
while True:
words = input("请输入要查询的单词或句子:\n")
if words == 'q':
break
result = traslate(words)
print("翻译结果是:%s"%result)
python find(urlopen.read())_Python小白必看之urlopen()详解相关推荐
- 思科ccie网络工程师必看网络安全技术详解-ielab实验室
思科ccie网络工程师必看网络安全技术详解-ielab实验室,网络安全威胁是指网络系统所面临的,由已经发生的或潜在的安全事件对某一资源的保密性.完整性.可用性或合法使用所造成的威胁.能够在不同程度.不 ...
- 新手python爬虫代码_新手小白必看 Python爬虫学习路线全面指导
爬虫是大家公认的入门Python最好方式,没有之一.虽然Python有很多应用的方向,但爬虫对于新手小白而言更友好,原理也更简单,几行代码就能实现基本的爬虫,零基础也能快速入门,让新手小白体会更大的成 ...
- python属性使用教程_Python对象的属性访问过程详解
只想回答一个问题: 当编译器要读取obj.field时, 发生了什么? 看似简单的属性访问, 其过程还蛮曲折的. 总共有以下几个step: 1. 如果obj 本身(一个instance )有这个属性, ...
- python迭代器与生成器_python的迭代器与生成器实例详解
本文以实例详解了python的迭代器与生成器,具体如下所示: 1. 迭代器概述: 迭代器是访问集合元素的一种方式.迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束.迭代器只能往前不会后 ...
- [转载] python 遍历字符串 字符_python 遍历字符串(含汉字)实例详解
参考链接: Python字符串| rfind python 遍历字符串(含汉字)实例详解 python 遍历字符串(含汉字)实例详解 s = "中国china" for j in ...
- python查看模块功能_Python进阶之inspect模块使用详解
前几篇内容我们详细探讨了如何从Python中获取帮助信息: 前情回顾 1.查看模块.类提供了哪些接口: 需要帮助吗?dir函数的孪生兄弟,Python中魔法方法__dir__详解 2.查看对象内部属性 ...
- python抓取图片数字_python实现图片处理和特征提取详解
这是一张灵异事件图...开个玩笑,这就是一张普通的图片. 毫无疑问,上面的那副图画看起来像一幅电脑背景图片.这些都归功于我的妹妹,她能够将一些看上去奇怪的东西变得十分吸引眼球.然而,我们生活在数字图片 ...
- python 遍历字符串 字符_python 遍历字符串(含汉字)实例详解
python 遍历字符串(含汉字)实例详解 python 遍历字符串(含汉字)实例详解 s = "中国china" for j in s: print j 首先一个,你这个'a'是 ...
- python中linspace函数_python的range和linspace使用详解
在python中要产生一个数字序列,最快的方法就是使用range和linspace函数,但是这两者不太一样,但总的来说实现的效果是一致的,都能获取一个数字序列. range range一看其名就知道是 ...
最新文章
- 使用postman修改SAP Marketing Cloud contact主数据
- Python源码学习:Python函数浅析-无参函数
- SQL Server 2008中原生的分层数据类型:hierarchyid
- uicontrol图形对象用户界面的用法
- Java微服务(三)【本地maven配置与环境变量】(手把手编写,超级详细)
- java压缩传输_简单实现字符串的压缩,减轻传输压力
- c 数组上限_高级I/O复用技术:Epoll的使用及一个完整的C实例含代码
- opencv图像处理8-卷积
- Oracle Coherence:分布式数据管理
- JAVA 9中module初探
- Python自动化爬虫教程:Pyppeteer采集京东商城书籍信息
- 使用CSS3实现按钮特效
- win11彻底卸载微软bing输入法,包括删除输入法状态栏图标
- (三)幸福取决于关注点所在
- spyder顺眼配色方案记录
- 用 SwiftUI 编写真正的 app
- SAT数学解题方法介绍
- C#在VS2019中各种字体颜色的意思
- appnode怎么样_Linux面板AppNode免费开放使用,你还在用宝塔吗? - 立金哥
- 与你分享如何做好企业汇算清缴
热门文章
- D - Connect the Cities (HDU - 3371)
- linux安装软件的几种方式(kali平台)和一些实用的软件(持续更新)
- Java Script中常见操作
- CSS定位网页中的元素
- HTTP简介,http是一个属于应用层的面向对象的协议
- iOS开发CoreAnimation解读之一——初识CoreAnimation核心动画编程
- C#中的DataSet添加DataTable问题
- 华为软件编程规范和范例 函数、过程
- 火星人敏捷开发手册 原10.31版本已于10.14提前发布,特此通知
- 安装SQL Server2008错误解决方案