Python学习笔记【三】Pyhton的HTML应用

Python中和来对URL进行解析的的模块是urlparse.

1.URL解析(Urlparse)

import urlparse
urlstr
="https://www.baidu.com/helloword?id=123"
x
=urlpars
import urlparse
urlstr
="http://www.abc.com/helloword/index.php?id=123"
x
=urlparse.urlparse(urlstr)
print "scheme:",x.scheme
print "netloc:",x.netloc
print "path:",x.path
print "params:",x.par
import urlparse
urlstr
="http://www.abc.com/helloword/index.php?id=123"
x
=urlparse.urlparse(urlstr)
print "scheme:",x.scheme
print "netloc:",x.netloc
print "path:",x.path
print "params:",x.params
print "query:",x.query
print "hostname:",x.hostname
print "port:",x.port

输出结果:
scheme: http
netloc: www.abc.com
path:
/helloword/index.php
params:
query: id
=123
hostname: www.abc.com
port: None

 


属性

含义

scheme

协议

netloc

服务器地址

path

路径

params

参数

query

查询部分

username

用户名

password

密码

hostname

主机名

port

端口

2.URL拼合(urljoin)

import urlparse
print urlparse.urljoin("http://www.abc.com","1.htm")
输出结果:
http:
//www.abc.com/1.htm

 

在相对URL中如果有协议字段,则优先使用相对URL中的协议。否则使用绝对URL中的协议字段。

import urlparse
print urlparse.urljoin("http://www.python.org","ftp://www.python.org")
print urlparse.urljoin("http://www.python.org","www.python.org")
输出结果:
ftp:
//www.python.org
http:
//www.python.org/www.python.org

 

3.URL的编码与解码

方法

功能

quote

对URL进行编码

quote_plus

同quote方法,进一步将空格变成“+”

unquote

解码

unquote_plus

进一步将+变成空格

import urllib
print urllib.quote("/~test/")
print urllib.quote_plus("/~test/public html")

输出结果:
/%7Etest/
%2F%7Etest%2Fpublic+html

 

4.CGI

公共网关接口(Common Gateway Interface)是外部应用程序和HTTP服务器之间交互的
一个能通用接口标准。CGI本身不是一种语言,也不是一种网络协议,仅仅定义了HTTP服务器
和程序之间的交换信息规范,可以用任何语言书写。
CGI环境信息
#远程IP
import os
remote_addr
=os.environ['REMOTE_ADDR']
#获取当前服务器中所有运行的CGI变量
import cgi
cgi.print_environ

 

用户的输入:
form = cgi.FieldStorage()

for key in form.keys():
print key,"==>",form[key].value
print "<br>"

http:
//127.0.0.1/py/1.py?value1=123&value2=123456

 

获取HTML资源
import urllib#打印网页源代码
docu_text = urllib.urlopen("http://www.baidu.com")
print docu_text.fp.read()

 

 
import urllib#二进制 每1024字节读取存入test.html
fp
= urllib.urlopen("http://www.baidu.com")
op
=open("test.html","wb")
n
=0
while True:
s
= fp.read(1024)
if not s:
break
op.write(s)
n
= n + len(s)
fp.close()
op.close()
print "retrieved",n,"bytes from ",fp.url

 

 

posted on 2009-12-30 22:52    阅读(646)  评论(0编辑  收藏  举报

导航