Python urllib2 模塊


urllib2.urlopen(url, data=None, timeout=<object object>) :用於打開一個URL,URL可以是一個字符串也可以是一個請求對象,data 用於指定要發送到服務器的額外數據的字符串,timeout 用於設置打開URL的超時時間

In [1]: import urllib2
In [2]: request = urllib2.urlopen('http://www.baidu.com/')    # 結果返回一個文件對象
In [3]: data = request.read()    # 使用文件對象的read()方法可以讀取數據,也可以readline()、readlines()等方法
In [1]: import urllib2
In [2]: url = 'http://www.baidu.com/'
In [3]: headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.96 Safari/537.36'}
In [4]: request = urllib2.Request(url, headers=headers)    # 也可以先構造一個請求對象
In [5]: response = urllib2.urlopen(request)    # 然后使用 urlopen() 來打開這個請求對象
In [6]: data = response.read()


urllib2.Request(url, data, headers) :用於構造一個請求對象,然后用 urllib2.urlopen() 來打開這個請求對象,data 用於指定要發送到服務器的額外數據的字符串,headers 用於指定請求頭,請求頭可以在瀏覽器按 F12 查看

In [1]: import urllib2
In [2]: url = 'http://www.baidu.com/'    # User-Agent 表示使用哪個瀏覽器打開
In [3]: headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.96 Safari/537.36'}
In [4]: request = urllib2.Request(url, headers=headers)    
In [5]: response = urllib2.urlopen(request)
In [6]: data = response.read()


urllib2.URLError 
:這是一個異常類,如果我們使用 urlopen() 打開一個URL,打開失敗就會拋出這個異常,失敗的原因主要有:沒有網絡連接 、服務器連接失敗 、找不到指定的服務器
urllib2.HTTPError :這是 URLError 異常類的子類,在你利用 urlopen() 方法發送一個請求時,服務器會響應並返回請求的內容,使用 urllib2.HTTPError 可以獲取返回的請求頭中的 HTTP 狀態碼
urllib2.HTTPError 這個類包含了 code 屬性,urllib2.URLError 這個類包含了 code 和 reason 屬性,code 即 HTTP 狀態碼,如 200,403,502 等,reason 用於描述失敗的原因,一般我們只使用 urllib2.URLError 這個異常類

import urllib2

try:
    urllib2.urlopen('http://blog.csdn.net/cqcrek')
except urllib2.URLError, e:
    if hasattr(e, 'code'):
        print '連接服務器失敗,錯誤代碼:%s' % e.code
    if hasattr(e, 'reason'):
        print '連接服務器失敗,失敗原因:%s' % e.reason
    else:
        print '連接服務器失敗,失敗原因:%s' % e
else:
    print 'OK'

 

 

 

 

 

 

 

 

 

 

 

 

    


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM