首页 > 编程 > Python > 正文

python爬虫之urllib库常用方法用法总结大全

2020-02-15 23:40:40
字体:
来源:转载
供稿:网友

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)            
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表