Urllib
官方文档地址:https://docs.python.org/3/library/urllib.html
urllib提供了一系列用于操作URL的功能。
本文主要介绍的是关于python urllib库常用方法用法的相关内容,下面话不多说了,来一起看看详细的介绍吧
1、读取cookies
import http.cookiejar as cj,urllib.request as requestcookie = cj.CookieJar()handler = request.HTTPCookieProcessor(cookie)opener = request.build_opener(handler)response = opener.open('http://www.bigdata17.com')for item in cookie: print(item.name + "=" + item.value)
2、将cookies保存在文件中
filename = 'baidu_cookies.txt'cookies = cj.MozillaCookieJar(filename)handler = request.HTTPCookieProcessor(cookies)opener = request.build_opener(handler)response = opener.open('http://www.baidu.com')cookies.save(ignore_discard=True,ignore_expires=True)
3、处理异常
URLError和HTTPError类,两个类是父子关系,HTTPError会返回错误代码,两个类都可以处理request模块产生的异常,这两个都有一个reason属性,用于记录出现异常的原因
URLError处理异常:
from urllib import request,errortry: response = request.urlopen('http://www.bigdata17.com/index.htm')except error.URLError as e: print(e.reason)
HTTPError处理异常:
这个类是专门处理http请求的异常,http请求会返回一个请求代码,因此HTTPError会有一个code属性。另外HTTP请求会有包含请求头信息,所以HTTPError还包含一个headers属性。HTTPError继承自URLError类,因此也包含有reason属性。
代码:
try: response = request.urlopen('http://www.bigdata17.com/index.htm')except error.HTTPError as e: print(e.reason) print(e.code) print(e.headers)
4、解析链接
urllib库中的parse类提供了很多用于解析链接的方法。
urlparse()方法是专门用于解析链接的,我们先看这个方法的返回值:
from urllib.parse import urlparseresult = urlparse('http://www.bigdata17.com')print(result)
上面的代码返回的结果:
ParseResult(scheme='http', netloc='www.bigdata17.com', path='', params='', query='', fragment='')
可见urlparse()方法返回的是ParseResult类,这个了有6个属性,分别是scheme、netloc、path、params、query和fragment。其中scheme代表的是协议,有http,https,ftp等协议类型。netloc是网站域名,path是要访问的网页名称。params是代表参数。query查询参数,fragment是锚点。
urlparse()方法是如何将一个链接映射到上面的6个参数中呢?
继续看下一段代码:
from urllib.parse import urlparseresult = urlparse('http://www.bigdata17.com/22.html;user=bigdata17?id=10#content')print(result)
新闻热点
疑难解答