什么是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库的一些常见用法。
发送请求
import urllib.requestr = urllib.request.urlopen(http://www.python.org/)
首先导入urllib.request
模块,使用urlopen()
对参数中的URL发送请求,返回一个http.client.HTTPResponse
对象。
在urlopen()
中,使用timeout字段,可设定相应的秒数时间之后停止等待响应。除此之外,还可使用r.info()
、r.getcode()
、r.geturl()
获取相应的当前环境信息、状态码、当前网页URL。
读取响应内容
import urllib.requesturl = "http://www.python.org/"with urllib.request.urlopen(url) as r: r.read()
使用r.read()
读取响应内容到内存,该内容为网页的源代码(可用相应的浏览器“查看网页源代码”功能看到),并可对返回的字符串进行相应解码
新闻热点
疑难解答