什么是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()讀取響應內容到內存,該內容為網頁的源代碼(可用相應的瀏覽器“查看網頁源代碼”功能看到),并可對返回的字符串進行相應解碼
新聞熱點
疑難解答