urllib包

前言:urllib.parse模块按功能分为两大类:URL parsing(url解析) 和URL quoting(url引用)。

一.URL parsing:主要是1.把URL字符串分割成组件2.把组件合并成url字符串

1.1.  urllib.parse.urlparse(urlstring, scheme=‘‘, allow_fragments=True) =>操作urlstring字符串生成6个元素组成的一个元祖的ParseResult实体,例 如:ParseResult(scheme=‘http‘, netloc=‘www.cwi.nl:80‘, path=‘/%7Eguido/Python.html‘, params=‘‘, query=‘‘, fragment=‘‘)。

  上述一个元祖的ParseResult实体有以下只读属性:

  

Attribute Index Value Value if not present
scheme 0 URL scheme specifier empty string
netloc 1 Network location part empty string
path 2 Hierarchical path empty string
params 3 Parameters for last path element empty string
query 4 Query component empty string
fragment 5 Fragment identifier empty string
username   User name None
password   Password None
hostname   Host name (lower case) None
port   Port number as integer, if present None

1.2. urllib.parse.urlunparse(parts):主要是把urlparse方法生成的元组重新合并成url字符串。

1.3.urllib.parse.urlsplit(urlstring, scheme=‘‘, allow_fragments=True):功能类似urlparse,但是不拆分参数。

1.4.urllib.parse.urlunsplit(parts):功能类似urlunparse

1.5.urllib.parse.urljoin(base, url, allow_fragments=True):url是相对地址,就拼接,若是绝对地址就替换base。

1.6.urllib.parse.urldefrag(url):获取url中的Fragment identifier

1.7.urllib.parse.quote(string, safe=‘/‘, encoding=None, errors=None):对url编码

1.8.urllib.parse.unquote(string, encoding=‘utf-8‘, errors=‘replace‘):对url解码

1.9.urllib.parse.urlencode(query, doseq=False, safe=‘‘, encoding=None, errors=None):对url参数编码

二、urllib.request打开URL的工具类,包括:身份认证、重定向、cookie。

2.1.urllib.request.urlopen(url, data=None, [timeout, ]*, cafile=None, capath=None, cadefault=False):打开一个url网站。

url:可以是个字符串也可以是Request object.

data:发送到server的数据.

返回:For http and https urls, this function returns a http.client.HTTPResponse object。

For ftp, file, and data urls and requests explicity handled by legacy URLopener and FancyURLopener classes, this function returns a urllib.response.addinfourl object。

2.2.urllib.request.build_opener([handler, ...]):返回一个OpenerDirector实体。

参数:handlers can be either instances of BaseHandler, or subclasses of BaseHandler

2.3.类:class urllib.request.Request(url, data=None, headers={}, origin_req_host=None, unverifiable=False, method=None):URL request类定义。

url必须是有效的。

data must be a bytes object。

2.4类:Request Objects:属性和方法见api

2.5类:OpenerDirector Objects:属性和方法见api

OpenerDirector.open(url, data=None[, timeout]):与urllib.request.urlopen()方法效果相同。

2.6委托:BaseHandler Objects:属性和方法见api

三、urllib.error

四、urllib.robotparser

时间: 2024-08-11 05:31:32

urllib包的相关文章

requests库和urllib包对比

python中有多种库可以用来处理http请求,比如python的原生库:urllib包.requests类库.urllib和urllib2是相互独立的模块,python3.0以上把urllib和urllib2合并成一个库了,requests库使用了urllib3.requests库的口号是"HTTP For Humans",为人类使用HTTP而生,用起来不知道要比python原生库好用多少呢,比起urllib包的繁琐,requests库特别简洁和容易理解.话不多说,代码为证~~~ 下

学习Python的urllib模块

 urllib 模块作为Python 3 处理 URL 的组件集合,如果你有 Python 2 的知识,那么你就会注意到 Python 2 中有 urllib 和 urllib2 两个版本的模块,这些现在都是 Python 3 的 urllib 包的一部分,具体如何来体现它们之间的关系 Python 3 的 urllib 模块是一堆可以处理 URL 的组件集合.如果你有 Python 2 的知识,那么你就会注意到 Python 2 中有 urllib 和 urllib2 两个版本的模块.这些现在

httplib urllib urllib2 pycurl 比较

最近网上面试看到了有关这方面的问题,由于近两个月这些库或多或少都用过,现在根据自己的经验和网上介绍来总结一下. httplib 实现了HTTP和HTTPS的客户端协议,一般不直接使用,在python更高层的封装模块中(urllib,urllib2)使用了它的http实现.所以效率要比这两个库高一点.http://www.cnblogs.com/beiyeren/p/4046139.html #-*- coding:utf-8 –*- from urlparse import urlparse i

关于urllib、urllib2爬虫伪装的总结

站在网站管理的角度,如果在同一时间段,大家全部利用爬虫程序对自己的网站进行爬取操作,那么这网站服务器能不能承受这种负荷?肯定不能啊,如果严重超负荷则会时服务器宕机(死机)的,对于一些商业型的网站,宕机一秒钟的损失都是不得了的,这不是一个管理员能承担的,对吧?那管理员会网站服务器做什么来优化呢?我想到的是,写一个脚本,当检测到一个IP访问的速度过快,报文头部并不是浏览器的话,那么就拒绝服务,或者屏蔽IP等,这样就可以减少服务器的负担并让服务器正常进行. 那么既然服务器做好了优化,但你知道这是对爬虫

Python3 使用 urllib 编写爬虫

什么是爬虫 爬虫,也叫蜘蛛(Spider),如果把互联网比喻成一个蜘蛛网,Spider就是一只在网上爬来爬去的蜘蛛.网络爬虫就是根据网页的地址来寻找网页的,也就是URL.举一个简单的例子,我们在浏览器的地址栏中输入的字符串就是URL,例如:https://www.baidu.com URL就是同意资源定位符(Uniform Resource Locator),它的一般格式如下(带方括号[]的为可选项): protocol :// hostname[:port] / path / [;parame

python爬虫开发之urllib模块详细使用方法与实例全解

爬虫所需要的功能,基本上在urllib中都能找到,学习这个标准库,可以更加深入的理解后面更加便利的requests库. 首先 在Pytho2.x中使用import urllib2——-对应的,在Python3.x中会使用import urllib.request,urllib.error 在Pytho2.x中使用import urllib——-对应的,在Python3.x中会使用import urllib.request,urllib.error,urllib.parse 在Pytho2.x中使

python学习笔记(二)

一.版本问题 python2与python3是目前主要的两个版本. python3.0版本较之前的有很大变动,而且不向下兼容. Python 2.7作为一个过渡版本,基本使用了Python 2.x的语法和库,同时考虑了向Python 3.0的迁移.即2.7版本兼容2.x和3.0的语法 Python 2.7保持了对之前版本的全兼容,而且还包含了Python 3.0的新玩意(一些新特性需要通过"from __future__ import"来启用). 如果想要在python2.7中使用:p

机器学习实战5:k-means聚类:二分k均值聚类+地理位置聚簇实例

k-均值聚类是非监督学习的一种,输入必须指定聚簇中心个数k.k均值是基于相似度的聚类,为没有标签的一簇实例分为一类. 一 经典的k-均值聚类 思路: 1 随机创建k个质心(k必须指定,二维的很容易确定,可视化数据分布,直观确定即可): 2 遍历数据集的每个实例,计算其到每个质心的相似度,这里也就是欧氏距离:把每个实例都分配到距离最近的质心的那一类,用一个二维数组数据结构保存,第一列是最近质心序号,第二列是距离: 3 根据二维数组保存的数据,重新计算每个聚簇新的质心: 4 迭代2 和 3,直到收敛

python语法笔记(七)

python标准库 Python有一套很有用的标准库(standard library).标准库会随着Python解释器,一起安装在你的电脑中的.它是Python的一个组成部分.这些标准库是Python为你准备好的利器,可以让编程事半功倍 第一类:Python增强 Python自身的已有的一些功能可以随着标准库的使用而得到增强. 1) 文字处理 Python的string类提供了对字符串进行处理的方法.更进一步,通过标准库中的re包,Python可以用正则表达式(regular expressi