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

 

 

你可能感兴趣的:(python)