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()的功能完全相反
网友评论