給定一個標準urllib.request
對象,檢索,因此:urllib.request:以任何方式從它讀取而不修改請求對象?
req = urllib.urlopen('http://example.com')
如果通過req.read()
讀取其內容,然後請求對象將是空的。
但是,與普通的文件類對象不同,請求對象沒有seek
方法,因爲我相信是很好的理由。
但是,在我的情況下,我有一個函數,我希望它對某個請求做出某些確定,然後將該請求「無損」返回,以便可以再次讀取該請求。
我知道一個選項是重新請求它。但我希望能夠避免對同一個網址發出多個HTTP請求。
我能想到的唯一另外一種選擇是讓函數返回提取內容和請求對象的元組,並明白任何調用此函數的東西都必須以這種方式獲取內容。
這是我唯一的選擇嗎?
請勿使用'urllib.urlopen' - [*另請注意,urllib.urlopen()函數已在Python 3中被刪除,轉而使用urllib2.urlopen()*](http://docs.python。 org/2/library/urllib.html) –
謝謝你讓我知道,儘管在這種情況下'urllib2.urlopen'的行爲是一樣的。 –