十九、WEB设计
模块urlparse
>>> urlparse.urlparse(‘http://www.baidu.com:8080/dcoc/123.php;aa=123?sdf#dff#dfr‘)
(‘http‘, ‘www.baidu.com:8080‘, ‘/dcoc/123.php‘, ‘aa=123‘, ‘sdf‘, ‘dff#dfr‘)
urlunparse组装被分割的表列。
urljoin是组装路径,如:
>>> urlparse.urljoin(‘http://www.baidu.com/doc/123.htm‘,‘/dfg/456.asp‘)
‘http://www.baidu.com/dfg/456.asp‘
>>> urlparse.urljoin(‘http://www.baidu.com/doc/123.htm‘,‘dfg/456.asp‘)
‘http://www.baidu.com/doc/dfg/456.asp‘
模块urllib
urlopen(urlstr,postQueryData=None)可以读取网页内容或一个本地文件,返回一个文件句柄,通过这个文件句柄来读取数据。
注意这个URL必须是带有协议的,比如www.baidu.com就会出现IOError的异常,http://www.baidu.com就正确了。
后面的参数是提供给动态页面的post参数的。如果要加get参数,直接在网址后面写上就OK了。
fp=urlopen(‘http://www.baidu.com‘);可以使用read,readline,readlines,close,fileno,info,geturl来进行操作。
info提供一个MIME表头说明,提供给其他外部程序辨别。
geturl获得路径,主要是防止重定向的,不过如果是省略具体文件名的,显示依然省略。如:fp.geturl()得到‘http://www.baidu.com‘ 而没有具体的文件名。
urlretrieve(urlstr,localfile=None,dowloadStatusHook=None)将文件下载到本地。
第一个参数是路径,第二个参数是存放位置,不填则在临时目录(temp)生成临时文件,第二个参数是个函数,每下载一个数据块就会调用。
返回2个元素,一个是本地文件名,第二个是MIME表头。
最好在之前调用urlcleanup清除缓存。
quote转换特殊字符为%X形式,如 ~ : + ?等,不转换/
quote_plus同上,转换/ 同时空格转换为+
unquote unquote_plus功能相反。
书上提供了一个扒网页的例子,可以参考下。P464
用python实现的CGI程序在网页上和PHP等基本一致,略。
用python建立web服务器,略。
与web相关的模块,P494
------------------------------------------------------------------------
第二十章 扩展
以前看书的时候就常看到说,python最强的地方是它被成为胶水语言,一直看到最后一章才看到胶水的实现,不过感觉不是传说中的那么方便。
本文出自 “飞翔正义的博客” 博客,请务必保留此出处http://xzq2000.blog.51cto.com/2487359/1766840
原文:http://xzq2000.blog.51cto.com/2487359/1766840