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模块常用方法的更多相关文章

  1. Python核心模块——urllib模块

    现在Python基本入门了,现在开始要进军如何写爬虫了! 先把最基本的urllib模块弄懂吧. urllib模块中的方法 1.urllib.urlopen(url[,data[,proxies]]) ...

  2. 【py网页】urllib模块,urlopen

    Python urllib 库提供了一个从指定的 URL 地址获取网页数据,然后对其进行分析处理,获取想要的数据. 下面是在 Python Shell 里的 urllib 的使用情况: 01 Pyth ...

  3. Python3学习笔记(urllib模块的使用)转http://www.cnblogs.com/Lands-ljk/p/5447127.html

    Python3学习笔记(urllib模块的使用)   1.基本方法 urllib.request.urlopen(url, data=None, [timeout, ]*, cafile=None,  ...

  4. python urllib模块的urlopen()的使用方法及实例

    Python urllib 库提供了一个从指定的 URL 地址获取网页数据,然后对其进行分析处理,获取想要的数据. 一.urllib模块urlopen()函数: urlopen(url, data=N ...

  5. 全局变量 urllib模块 json模块

    1.vars()  查看一个.py文件中的全局变量 print(vars()) #重点 __name__': '__main__ '__file__': 'C:/Users/lenovo/Pychar ...

  6. python爬虫-urllib模块

    urllib 模块是一个高级的 web 交流库,其核心功能就是模仿web浏览器等客户端,去请求相应的资源,并返回一个类文件对象.urllib 支持各种 web 协议,例如:HTTP.FTP.Gophe ...

  7. [转]Python核心模块——urllib模块

    现在Python基本入门了,现在开始要进军如何写爬虫了! 先把最基本的urllib模块弄懂吧. urllib模块中的方法 1.urllib.urlopen(url[,data[,proxies]]) ...

  8. Python基础之 urllib模块urlopen()与urlretrieve()的使用方法详解。

    Python urllib模块urlopen()与urlretrieve()的使用方法详解   1.urlopen()方法urllib.urlopen(url[, data[, proxies]]) ...

  9. urllib模块

    python爬虫-urllib模块   urllib 模块是一个高级的 web 交流库,其核心功能就是模仿web浏览器等客户端,去请求相应的资源,并返回一个类文件对象.urllib 支持各种 web ...

  10. Python爬虫之urllib模块2

    Python爬虫之urllib模块2 本文来自网友投稿 作者:PG-55,一个待毕业待就业的二流大学生. 看了一下上一节的反馈,有些同学认为这个没什么意义,也有的同学觉得太简单,关于Beautiful ...

随机推荐

  1. [转帖]Linux遇到一个内存过高的报警——释放buff/cache

    前些天一直受到内存报警,过一段时间就会恢复.由于开发工作有些多,就一直没理它,但是最近几天开始有些频繁了.虽然不影响业务,但是天天报警,还是让人提心吊胆的.因此就抽了一个上午的时间去解决一下这个问题. ...

  2. vue获取子组件的实例$el、$attrs和inheritAttrs的使用

    我的需求 有些时候,我们需要获取组件的DOM元素 有些小伙伴会说,这还不简单 直接使用this.$ref.xx不就可以了吗 我们来看一下,是不是我们想的那样简单 组件内容 <template&g ...

  3. Jekyll安装

    本文来自Jekyll官方文档. 简介 Jekyll是一个静态网站生成器,它可以把Markdown写就的文本根据指定的布局生成静态网站.你可以调整网站的外观.URL.页面展示数据等信息. 准备工作 Je ...

  4. 解决VS选择运行“在证书存储区中找不到清单签名证书”

     转:https://www.cnblogs.com/190196539/archive/2011/12/03/2272861.html 解决"在证书存储区中找不到清单签名证书" ...

  5. 从零开始配置 vim(4)——键盘映射的一些技巧

    通过前面的学习,我们已经知道了如何进行键盘映射,并且也知道了在任何场合应该使用非递归版本的映射.这篇再介绍一些使用关于快捷键映射的内容作为收尾 快速编辑 vimrc 文件 通过前面掌握的知识,相信各位 ...

  6. 【Jmeter】按比例分配Api压测

    先看 [Jmeter]基础介绍-详细 [Jmeter]Request1输出作为Request2输入-后置处理器 继续聊提出的第二个问题,即 2.需要按比例分配API请求并发,以模拟真实的API压力场景 ...

  7. 4.3 C++ Boost 日期时间操作库

    Boost 库是一个由C/C++语言的开发者创建并更新维护的开源类库,其提供了许多功能强大的程序库和工具,用于开发高质量.可移植.高效的C应用程序.Boost库可以作为标准C库的后备,通常被称为准标准 ...

  8. 深入浅出Java多线程(三):线程与线程组

    「引言」 大家好,我是你们的老伙计秀才!今天带来的是[深入浅出Java多线程]系列的第三篇内容:线程与线程组.大家觉得有用请点赞,喜欢请关注!秀才在此谢过大家了!!! 在现代软件开发中,多线程编程已成 ...

  9. 深入浅出Java多线程(四):线程状态

    引言 大家好,我是你们的老伙计秀才!今天带来的是[深入浅出Java多线程]系列的第四篇内容:线程状态.大家觉得有用请点赞,喜欢请关注!秀才在此谢过大家了!!! 在现代软件开发中,多线程编程已经成为提升 ...

  10. Azure - 机器学习:创建机器学习所需资源,配置工作区

    本文中你可以创建使用 Azure 机器学习所需的资源,包含工作区和计算实例. 关注TechLead,分享AI全维度知识.作者拥有10+年互联网服务架构.AI产品研发经验.团队管理经验,同济本复旦硕,复 ...