时间:2021-05-22
什么是Urllib库
Urllib是Python提供的一个用于操作URL的模块,我们爬取网页的时候,经常需要用到这个库。
升级合并后,模块中的包的位置变化的地方较多。
urllib库对照速查表
Python2.X
Python3.X
urllib
urllib.request, urllib.error, urllib.parse
urllib2
urllib.request, urllib.error
urllib2.urlopen
urllib.request.urlopen
urllib.urlencode
urllib.parse.urlencode
urllib.quote
urllib.request.quote
urllib2.Request
urllib.request.Request
urlparse
urllib.parse
urllib.urlretrieve
urllib.request.urlretrieve
urllib2.URLError
urllib.error.URLError
cookielib.CookieJar
http.CookieJar
urllib库是用于操作URL,爬取页面的python第三方库,同样的库还有requests、httplib2。
在Python2.X中,分urllib和urllib2,但在Python3.X中,都统一合并到urllib中。通过上表可以看到其中常见的变动,依据该变动可快速写出相应版本的python程序。
相对来说,Python3.X对中文的支持比Python2.X友好,所以该博客接下来通过Python3.X来介绍urllib库的一些常见用法。
发送请求
有时频繁的爬取一个网页,会被网站服务器屏蔽IP。这时,可通过上述方法设置代理IP。
首先,通过网上代理IP的网站找一个可以用的IP,构建ProxyHandler()对象,将'http'和代理IP以字典形式作为参数传入,设置代理服务器信息。再构建opener对象,将proxy和HTTPHandler类传入。通过installl_opener()将opener设置成全局,当用urlopen()发送请求时,会使用之前设置的信息来发送相应的请求。
异常处理
可以使用URLError类,处理一些URL相关异常。导入urllib.error,捕获URLError异常后,因为只有发生HTTPError异常(URLError子类)时,才会有异常状态码e.code,所以需要判断异常是否有属性code。
Cookie的使用
通过无状态协议HTTP访问网页时,Cookie维持会话间的状态。例如:有些网站需要登录操作,第一次可通过提交POST表单来登录,当爬取该网站下的其它站点时,可以使用Cookie来保持登录状态,而不用每次都通过提交表单来登录。
首先,构建CookieJar()对象cjar,再使用HTTPCookieProcessor()处理器,处理cjar,并通过build_opener()构建opener对象,设置成全局,通过urlopen()发送请求。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对的支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
urllib3是一款Python3的HTTP客户端。Python标准库提供了urllib。在Python2中,另外提供了urllib2;而在Python3中,重
python2中的urllib2改为python3中的urllib.request四种方式对比:python2的get#coding=utf-8importur
一、urllib和urllib2的关系在python2中,主要使用urllib和urllib2,而python3对urllib和urllib2进行了重构,拆分成
由于历史原因,Python有两个大的版本分支,Python2和Python3,又由于一些库只支持某个版本分支,所以需要在电脑上同时安装Python2和Pytho
前言在Python中,我们通常使用urllib中的urlencode方法将字典编码,用于提交数据给url等操作,但是在Python2和Python3中urlli