urllib模块常用方法
import urllib.parse
## urlparse() 对url进行解析,并对url按照一定格式进行拆分,返回一个包含6个字符串的元组(协议,位置,路径,参数,查询,判断), 可以将获得的元组强转为list来进行取值
url = "http://www.baidu.com/s?username=zhiliao"
print(urllib.parse.urlparse(url)) #ParseResult(scheme='http', netloc='www.baidu.com', path='/s', params='', query='username=zhiliao', fragment='')
print(list(urllib.parse.urlparse(url)))
## urlunparse() 将上面urlparse解析后的数据组合成url
data =['http','www.baidu.com','index.html','user','a=6','comment']
print(urllib.parse.urlunparse(data))
## urlsplit() 和urlparse()用法一样,只不过返回结果中没有params这个属性
## urljoin() url拼接,以后者为标准
url1 = "https://www.baidu.com/index/index.html"
url2 = "/index/add.html"
a_url = urllib.parse.urljoin(url1, url2)
print(a_url) #https://www.baidu.com/index/add.html
## urlencode() 将字典类型数据解析成查询字符串类型数据, 如果请求数中有中文则会进行编码
data = {"name": "tony", "age": 25}
qs = urllib.parse.urlencode(data)
print(qs) # name=tony&age=25
## parse_qs() 将查询字符串类型数据,解码成字典类型数据
qs = "name=tony&age=25"
print(urllib.parse.parse_qs(qs)) // {'name': ['tony'], 'age': ['25']}
## quote() 编码 unquote 解码
encode_url = urllib.parse.quote("https://www.runoob.com/") # 对一些符号进行编码
print(encode_url)
unencode_url = urllib.parse.unquote(encode_url) # 解码
print(unencode_url)
## quote_plus 编码 unquote_plus 解码
print(urllib.parse.unquote('1+2')) #不解码加号 '1+2'
print(urllib.parse.unquote_plus('1+2')) #把加号解码为空格'1 2'
import urllib.request
## urlopen() 打开一个网页
url = "www.baidu.com"
print(urllib.request.urlopen(url).read())
## Request() 添加请求头,请求数据等
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36'
}
req = urllib.request.Request("http://www.baidu.com/",headers=headers)
resp = urllib.request.urlopen(req)
print(resp.read())
## build_opener() urlopen底层函数,参考https://www.cnblogs.com/tinghai8/p/9044189.html
# 第一步:构建一个HTTPHandler 处理器对象,支持处理HTTP请求
http_handler = urllib.request.HTTPHandler()
# 第二步:调用urllib2.build_opener()方法,创建支持处理HTTP请求的opener对象
opener = urllib.request.build_opener(http_handler)
# 第三步:构建 Request请求
request = urllib.request.Request("http://www.baidu.com/")
# 第四步:调用自定义opener对象的open()方法,发送request请求
response = opener.open(request)
# 第五步:获取服务器响应内容
print(response.read())
## urlretrieve() 将网页保存到本地
urllib.request.urlretrieve("http://www.baidu.com/", "baidu.html")
urllib模块常用方法的更多相关文章
- Python核心模块——urllib模块
现在Python基本入门了,现在开始要进军如何写爬虫了! 先把最基本的urllib模块弄懂吧. urllib模块中的方法 1.urllib.urlopen(url[,data[,proxies]]) ...
- 【py网页】urllib模块,urlopen
Python urllib 库提供了一个从指定的 URL 地址获取网页数据,然后对其进行分析处理,获取想要的数据. 下面是在 Python Shell 里的 urllib 的使用情况: 01 Pyth ...
- Python3学习笔记(urllib模块的使用)转http://www.cnblogs.com/Lands-ljk/p/5447127.html
Python3学习笔记(urllib模块的使用) 1.基本方法 urllib.request.urlopen(url, data=None, [timeout, ]*, cafile=None, ...
- python urllib模块的urlopen()的使用方法及实例
Python urllib 库提供了一个从指定的 URL 地址获取网页数据,然后对其进行分析处理,获取想要的数据. 一.urllib模块urlopen()函数: urlopen(url, data=N ...
- 全局变量 urllib模块 json模块
1.vars() 查看一个.py文件中的全局变量 print(vars()) #重点 __name__': '__main__ '__file__': 'C:/Users/lenovo/Pychar ...
- python爬虫-urllib模块
urllib 模块是一个高级的 web 交流库,其核心功能就是模仿web浏览器等客户端,去请求相应的资源,并返回一个类文件对象.urllib 支持各种 web 协议,例如:HTTP.FTP.Gophe ...
- [转]Python核心模块——urllib模块
现在Python基本入门了,现在开始要进军如何写爬虫了! 先把最基本的urllib模块弄懂吧. urllib模块中的方法 1.urllib.urlopen(url[,data[,proxies]]) ...
- Python基础之 urllib模块urlopen()与urlretrieve()的使用方法详解。
Python urllib模块urlopen()与urlretrieve()的使用方法详解 1.urlopen()方法urllib.urlopen(url[, data[, proxies]]) ...
- urllib模块
python爬虫-urllib模块 urllib 模块是一个高级的 web 交流库,其核心功能就是模仿web浏览器等客户端,去请求相应的资源,并返回一个类文件对象.urllib 支持各种 web ...
- Python爬虫之urllib模块2
Python爬虫之urllib模块2 本文来自网友投稿 作者:PG-55,一个待毕业待就业的二流大学生. 看了一下上一节的反馈,有些同学认为这个没什么意义,也有的同学觉得太简单,关于Beautiful ...
随机推荐
- kafka的学习之一_带SASL鉴权的集群安装与启动
kafka的学习之一_带SASL鉴权的集群安装与启动 背景 想开始一段新的里程. 可能会比现在累, 可能会需要更多的学习和努力. kafka可能就是其中之一. 自己之前总是畏缩不前. 不想面对很多压力 ...
- [转帖]ldconfig命令
https://linux265.com/course/linux-command-ldconfig.html ldconfig命令的作用主要是在默认搜寻目录/lib和/usr/lib以及动态库配置文 ...
- [转帖]Nginx Ingress 高并发实践
概述 Nginx Ingress Controller 基于 Nginx 实现了 Kubernetes Ingress API,Nginx 是公认的高性能网关,但如果不对其进行一些参数调优,就不能充分 ...
- [转帖]CPU计算性能speccpu2006的测试方法及工具下载
https://www.yii666.com/blog/335517.html CPU计算性能speccpu2006的测试方法及工具下载 简介 测试原理 目录结构 测试方法 基准测试项解析 测试结果 ...
- Linux下PG数据库计划任务定期备份恢复的方法
注意事项 PG数据库需要注意的一点是需要安装OSSP-UUID的组件才能使用. 本次使用最除了冷备之外 最简单的 pg_dump和pg_restore的操作 的方式来进行处理 务必定期演练保证数据备份 ...
- 《PalWorld/幻兽帕鲁》旧电脑linux搭建服务器
关键词: PalWorld, Linux, Natapp, 内网穿透, 幻兽帕鲁 注 意 文 章 时 效 性 最近幻兽帕鲁爆火,steam一上线好友列表一串正在游玩哈哈哈,自己也是蹭一波热度,顺便试用 ...
- Java中的基本数据类型和包装类型的这些知识,你都知道吗?
Java中的基本数据类型和包装类型 Java 中的基本数据按类型可以分为四大类:布尔型.整数型.浮点型.字符型: 这四大类包含 8 种基本数据类型. 布尔型:boolean 整数型:byte.shor ...
- errgroup的常见误用
errgroup想必稍有经验的golang程序员都应该听说过,实际项目中用过的也应该不在少数.它和sync.WaitGroup类似,都可以发起执行并等待一组协程直到所有协程运行结束.除此之外errgr ...
- Intel酷睿Ultra隆重登场:28W能效逆天!AI性能领先竞品5.4倍
作为Intel 1971年首款微处理器4004诞生以来变革幅度最大的产品,代号Meteor Lake的第一代酷睿Ultra今天终于正式发布了!相关笔记本.迷你机产品也会陆续发布上市. 有关于酷睿Ult ...
- 目录 - JavaScript指南
目 录 第一章. JavaScript概述 第二章. JavaScript语法基础 第三章. JavaScript编程规范 第四章. JavaScript工具集合 第五章. JavaSc ...