urllib模塊中的方法

1.urllib.urlopen(url[,data[,proxies]])

打開一個url的方法,返回一個文件對象,然後可以進行類似文件對象的操作。本例試着打開baidu

import urllib

f = urllib.urlopen('http://www.baidu.com')

firstLine = f.readline()   #讀取html頁面的第一行

print firstLine

wKiom1hy5VqTL99MAAAhE5C3FT8450.png


urlopen返回對象提供方法:

read() , readline() ,readlines() , fileno() , close() :這些方法的使用方式與文件對象完全一樣

info():返回一個httplib.HTTPMessage對象,表示遠程服務器返回的頭信息

getcode():返回Http狀態碼。如果是http請求,200請求成功完成;404網址未找到

geturl():返回請求的url


2.urllib.urlretrieve(url[,filename[,reporthook[,data]]])

urlretrieve方法將url定位到的html文件下載到你本地的硬盤中。如果不指定filename,則會存爲臨時文件。

urlretrieve()返回一個二元組(filename,mine_hdrs)

臨時存放:

#需要指定存放地址可用 filename = urllib.urlretrieve('http://www.baidu.com',filename='/path/baidu.html')

import urllib

filename = urllib.urlretrieve('http://www.baidu.com')

type(filename)
filename[0]
filename[1]

wKiom1hy5-KDWv0DAAGNJogHHH4853.png


3.urllib.urlcleanup()

清除由於urllib.urlretrieve()所產生的緩存


4.urllib.quote(url)和urllib.quote_plus(url)

將url數據獲取之後,並將其編碼,從而適用與URL字符串中,使其能被打印和被web服務器接受。

#屏蔽url中特殊的字符(包括中文),把需要編碼的字符轉化爲 %xx 的形式

urllib.quote('http://www.baidu.com')

urllib.quote_plus('http://www.baidu.com')


5.urllib.unquote(url)和urllib.unquote_plus(url)

與4的函數相反


6.urllib.urlencode(query)

將URL中的鍵值對以連接符&劃分

將dict或者包含兩個元素的元組列表轉換成url參數。例如 字典{'name': 'dark-bull', 'age': 200}將被轉換爲"name=dark-bull&age=200"

這裏可以與urlopen結合以實現post方法和get方法:


GET 方法:

import urllib

params=urllib.urlencode({'spam':1,'eggs':2,'bacon':0})

#params'eggs=2&bacon=0&spam=1'

f=urllib.urlopen("http://python.org/query?%s" % params)

print f.read()










發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章