Biorąc pod uwagę standard urllib.request
obiekt, pobierane tak:urllib.request: jakikolwiek sposób na odczytanie z niego bez modyfikowania obiektu żądania?
req = urllib.urlopen('http://example.com')
Jeśli czytam jego zawartości poprzez req.read()
, potem obiekt żądania będzie pusta.
Jednak w przeciwieństwie do zwykłych obiektów podobnych do plików, obiekt żądania nie ma metody seek
, ponieważ jestem pewien, że są to doskonałe powody.
Jednak w moim przypadku mam funkcję i chcę, aby to ona ustaliła pewne żądania, a następnie zwróciła tę prośbę "bez szwanku", aby można ją było ponownie przeczytać.
Rozumiem, że jedną z opcji jest jej ponowne przesłanie. Ale chciałbym móc uniknąć tworzenia wielu żądań HTTP dla tego samego adresu url &.
Jedyną alternatywą, o której mogę pomyśleć, to przywrócenie funkcji zwracanej krotki wyodrębnionej treści i obiektu żądania, przy założeniu, że wszystko, co wywołuje tę funkcję, będzie wymagało pobrania treści w ten sposób.
Czy to moja jedyna opcja?
Nie używaj 'urllib.urlopen' - [* Zauważ również, że funkcja urllib.urlopen() została usunięta w Pythonie 3 na rzecz urllib2.urlopen() *] (http: //docs.python. org/2/library/urllib.html) –
Dzięki za poinformowanie mnie, chociaż w tym przypadku zachowanie z 'urllib2.urlopen' jest takie samo. –