urllib2基本使用例項

2021-06-16 08:16:33 字數 2434 閱讀 8784

示例一:urllib2

基本使用1

import urllib2

req = urllib2.request('')  

response = urllib2.urlopen(req)

html = response.read()

1、urllib2.request()的功能是構造乙個請求資訊,返回的

req就是乙個構造好的請求。

通過request()

還可構造一些額外的請求資訊(

metadata)

,見例項二。

2、urllib2.urlopen()的功能是傳送剛剛構造好的請求

req,並返回乙個

file

形的物件,

response

,包括了所有的返回資訊。

3、通過response.read()

可以讀取到

response

裡面的**,就是這裡的

html

。html

就是返回的頁面的源**。

例項二:urllib2

基本使用2

通過urllib2.request()

構造乙個有額外資料的請求資訊。包括「

」和想要傳送的資料,這些資料需要被以標準的方式

encode

,然後作為乙個資料引數傳送給

request

物件。encoding

是在urllib

中完成的,而不是在

urllib2

中完成的。看下面**就明白了。

import urllib

import urllib2

url = ''

user_agent = 'mozilla/4.0 (compatible; msie 5.5; windows nt)'

values =

headers =

data = urllib.urlencode(values)

req = urllib2.request(url, data, headers)

response = urllib2.urlopen(req)

the_page = response.read()

例項三:build_opener()

import hashlib

import urllib2

req = urllib2.request('')  

response1 = urllib2.urlopen(req)

html_1 = response1.read()

handle = urllib2.build_opener()

response2=handle.open(req)

html_2=response2.read()

m = hashlib.md5(html_1)   

y = hashlib.md5(html_2)

print m.hexdigest()

print y.hexdigest()

輸入的結果為

21b8daaaf7bb11e480fdd82a6d7772de

21b8daaaf7bb11e480fdd82a6d7772de

可以得知返回的htm1=htm2

所以handle.open

()與urllib2.urlopen()

其實是一樣的。

這能說明build_opener

的什麼問題,還沒有研究過。

例項四:

異常處理

不能處理乙個response時,urlopen

丟擲乙個

是http url

在特別的情況下被丟擲的

urlerror

的乙個子類。

通常,urlerror

被丟擲是因為沒有網路連線(沒有至特定伺服器的連線)或者特定的伺服器不存在。在這種情況下,含有

reason

屬性的異常將被丟擲,以一種包含錯誤**和文字錯誤資訊的

tuple

形式。

>>> req = urllib2.request('')

>>> try: urllib2.urlopen(req)

>>> except urlerror, e:

>>> print e.reason

(4, 'getaddrinfo failed')

當乙個錯誤被丟擲的時候,伺服器返回乙個http

錯誤**和乙個錯誤頁。你可以使用返回的

錯誤示例。這意味著它不但具有

code

屬性,而且 同時具有

read

,geturl

,和info

,methods

屬性。**

urllib2使用總結

urllib2庫是涉及到url資源請求的常用庫 官方文件 urllib2 extensible library for opening urls 常用函式 urllib2.urlopen url data timeout cafile capath cadefault context url 可以是...

urllib2使用總結

urllib2是python的乙個獲取urls的元件。他以urlopen函式的形式提供了乙個非常簡單的介面,具有利用不同協議獲取urls的能力,同樣提供了乙個比較複雜的介面來處理一般情況。urllib2支援獲取不同格式的urls例如 ftp gopher等,並利用它們相關網路協議進行獲取。urlli...

urllib2使用初探

在入門urllib2之前,我想應該先調研一下urllib與urllib2的區別 1 首先我們要明白的是,這兩個模組不可以相互替代.兩者都是接受url請求的模組,但是提供了不同的功能,兩個顯著的區別是 1.對於乙個url的request,urllib2.urlopen可以接受乙個request類的例項...