Python學習筆記【三】Pyhton的HTML應用

來源:互聯網
上載者:User

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

 

 
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.