(一)      URL地址

URL地址组件

URL组件

说明

scheme

网络协议或下载方案

net_loc

服务器所在地(也许含有用户信息)

path

使用(/)分割的文件或CGI应用的路径

params

可选参数

query

连接符(&)分割的一系列键值对

fragment

指定文档内特定锚的部分

net_loc组件

user:password@host:port

组件

说明

user

用户名或登录

password

用户密码

host

运行web服务器的计算机名称或地址(必需)

port

端口号(如果不是默认的80)

 

(二)      urllib

这里主要说明urllib.request和urllib.parse.

(三)      urllib.request

urllib.request

组件

说明

urlopen(url,data=None)

打开URL链接,并返回一个文件类型对象,就像open用二进制只读方式在本地打开了一个文件一样。

url:可以是url字符串,也可以是请求对象

data:url是post请求时,可以指定要传的数据

urlretrieve(url,filename=None)

下载url中的文件

filename:文件名及路径(没有指定路径则存放到当前工作目录下)

urlopen对象方法

组件

说明

read()

读取所有数据

readline()

读取一行数据

readlines()

读取所有行,作为列表返回

fileno()

返回文件句柄

close()

关闭url连接(close及上面4个方法和open的同名方法是一样的)

info()

返回MIME(多目标因特网邮件扩展)头文件。这个头文件通知浏览器返回的文件类型、以及可用哪类应用程序打开。

geturl()

返回真正的url(例如如果出现重定向,就可以从最终打开的文件中获得真正的url)

getcode()

返回HTTP状态码

 1 import  urllib.request
url = 'https://tieba.baidu.com/p/5475267611'
#打开url(就像用open二进制只读方式打开一个文件一样),使用read读取所有数据
html = urllib.request.urlopen(url).read()
print(type(html)) url_file = 'https://imgsa.baidu.com/forum/w%3D580/sign=99114e38abec08fa260013af69ef3d4d/e549b13533fa828bc80c7764f61f4134960a5a85.jpg'
#下载url中的文件并保存
urllib.request.urlretrieve(url_file,'C:\Temp\\1.jpg') #返回MIEM头文件
html_info = urllib.request.urlopen(url).info()
print(html_info)

(四)      urlib.parse

urlib.parse

函数

说明

urlparse(urlstr)

将url解析为一个元组(scheme='', netloc='', path='', params='', query='', fragment='')

urlunparse(urltup)

和urlparse相反,将url组件(一个元组)拼接为完整的url

urljoin(base,url)

将base的根域名和url拼接为一个完整的url

base:函数会自动截取net_loc及前面的所有内容

 1 import urllib.parse

 url = 'https://www.cnblogs.com/cate/python/'
newurl = '/cate/ruby/'
#将url解析为一个元组(scheme='', netloc='', path='', params='', query='', fragment='')
urlpar = urllib.parse.urlparse(url)
print('urlparse示例:',urlpar)
#和urlparse刚好相反,将元组(scheme='', netloc='', path='', params='', query='', fragment='')拼接为完整的url
urlunp = urllib.parse.urlunparse(urlpar)
print('urlunparse示例:',urlunp)
#将url netloc及前面部分的内容与newurl连接起来
url_ruby = urllib.parse.urljoin(url,newurl)
print('urljoin示例:',url_ruby)

Python笔记(十三):urllib模块的更多相关文章

  1. Python笔记(十三)_os模块和os.path模块

    os模块中关于文件/目录常用的函数使用方法 getcwd() 返回当前工作目录 chdir(path) 改变工作目录 listdir(path='.') 列举指定目录中的文件名('.'表示当前目录,' ...

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

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

  3. 13.python笔记之pyyaml模块

    Date:2016-03-25 Title:13.Python笔记之Pyymal模块使用 Tags:Python Category:Python 博客地址:www.liuyao.me 作者:刘耀 YA ...

  4. python笔记之常用模块用法分析

    python笔记之常用模块用法分析 内置模块(不用import就可以直接使用) 常用内置函数 help(obj) 在线帮助, obj可是任何类型 callable(obj) 查看一个obj是不是可以像 ...

  5. python笔记之bisect模块

    python笔记之bisect模块 当你决定使用二分搜索时,这个模块会给你带来很大的帮助. 例子 import bisect L = [1,3,3,6,8,12,15] x = 3 #在L中查找x,x ...

  6. python笔记之itertools模块

    python笔记之itertools模块 itertools模块包含创建有效迭代器的函数,可以用各种方式对数据进行循环操作,此模块中的所有函数返回的迭代器都可以与for循环语句以及其他包含迭代器(如生 ...

  7. python笔记之ZipFile模块

    python笔记之ZipFile模块 zipfile模块用来做zip格式编码的压缩和解压缩的,zipfile里有两个非常重要的class, 分别是ZipFile和ZipInfo, 在绝大多数的情况下, ...

  8. python笔记之subprocess模块

    python笔记之subprocess模块 [TOC] 从Python 2.4开始,Python引入subprocess模块来管理子进程,以取代一些旧模块的方法:如 os.system.os.spaw ...

  9. python笔记之Cmd模块

    python笔记之Cmd模块 Cmd类型提供了一个创建命令行解析器的框架,默认情况下,它使用readline来进行交互式操作.命令行编辑和命令完成. 使用cmd创建的命令行解释器循环读取输入的所有行并 ...

  10. Python爬虫之urllib模块2

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

随机推荐

  1. (转)【学习笔记】通过netstat+rmsock查找AIX端口对应进程

    原文:http://www.oracleplus.net/arch/888.html https://www.ibm.com/support/knowledgecenter/zh/ssw_aix_72 ...

  2. React技术栈梳理

    一.react是什么? react是一个js框架,可以用它来编写html页面,使用react后我们可以完全抛弃html(只需要一个主index文件),而用纯js来编写页面: 二.为什么要使用react ...

  3. map的容量的获取

    在go语言中,有两个内建函数分别是len(),cap(),前者用于获取容器的具体内容个数,后者用于获取容器分配的容量大小,但是这个cap对象是不能获取到map具体分配的容量大小的.有没有办法获取到呢, ...

  4. 腾讯、百度、网易游戏、华为Offer及笔经面经

    原文出处:http://bbs.yingjiesheng.com/forum.php?mod=viewthread&tid=1011893&fromuid=1745894 应届生上泡了 ...

  5. CentOS常用软件安装

    yum install *firefox* yum install flash-plugin

  6. angular enter事件,angular回车事件

    angular回车键搜索,angular enter搜索 对于搜索框,用户在输入内容后的搜索习惯不是鼠标点击搜索按钮,而是直接按enter键,那我们怎么给enter键绑定事件呢,其实很简单,代码如下: ...

  7. 亲身实践 yui-compressor压缩js和css

    最近很懒散,个人感情.家庭原因,没有动力去学东西,老是发誓要搞好前端工程化,老中断,唉!没有魄力! 最近老觉得这前端工程化有什么好的,东西那么多,还得学!直到前几天产品提了个优化,说搜索结果页跳商品详 ...

  8. AngularJS学习笔记(四)内置指令

    说说指令 不得不赞叹,指令是ng最为强大的功能之一,好吧,也可以去掉之一,是最强大的功能.ng内置了许多自定义的指令,这避免了我们自己去造轮子.同时,ng也提供了自定义指令的功能,可以让我们的页面元素 ...

  9. C# 集合 特殊集合

    一集合 1.可为不同类型,不固定长度 2.集合类型分为泛型集合(强类型集合)与非泛型集合(弱类型集合). 3.非泛型集合的类和接口位于using System.Collections命名空间. 4.泛 ...

  10. @Html.Raw() 与Newtonsoft.Json.JsonConvert.SerializeObject()

    一.后台 ViewBag.TypeList = typeList; 二.前台C# @{     var typeListFirst = ViewBag.TypeList;} 三.前台js中 var t ...