urllib提供了一個高級的Web通信庫,支持基本的web協議,如HTTP,FTP和Gopher協議,同時也支持對本地文件的訪問。具體來說,urllib模塊的功能是利用協議從因特網,局域網,本地主機上下載數據。
urllib模塊提供了很多函數,可以從指定的url下載數據。同時也可以對字符串進行編碼,解碼,以便在URL中以正確的形式顯示出來。
1、urlopen()在py3中為urllib.request.urlopen()
urlopen()打開一個給定的url字符串表示web鏈接,并返回文件類型的對象
urlopen(urlstr, postQueryData=None)
urlopen()打開urlstr所指向的url,如果沒有給定協議或下載方案
或傳入了“file“方案,urlopen()會打開一個本地文件。
2、urlretrieve()
urllib.urlretrieve()不是用來以文件的形式訪問并打開url,而是用于下載完整的html,把另存為文件
urlretrieve(url, filename=None,reporthook=None,data = None)
urlretrieve()可以方便的將urlstr中的整個HTML文件下載到本地。urlretrieve()返回的是一個二元組(filename,mime_hdrs).filename是含有下載數據的本地文件名,mime_hdrs是Web服務器響應后返回的一系列MIME文件頭。要獲取更多的信息,可以查看mimetools模塊的message類。對本地文件來說mime_hdrs是空的。
3、urllib.quote()和urllib.quote_plus()
quote*()函數用來獲取url里的數據,并將其編碼,使其可以用于URL字符串中,對某些不能打印的或者不被Web服務器作為有效URL接收的特殊字符進行轉換。
quote(urldata,safe='/')
逗號、下劃線、句號、數字、字母、斜線這類符號不需要轉化,其他的則都需要進轉換。另外,那些URL不能使用的字符前邊會加上百分號同時轉化為十六進制,例如,"%xx",xx表示這個字母的ASCII碼的十六進制
quote_plus()與quote()很像,只是它還可以把空格編碼轉化為“+”號
4、urllib,unquote()和urllib.unquote_plus()與urllib.quote()和urllib.quote_plus()的功能完全相反