Вы можете сделать быстрое погружение и исследовать библиотеку requests
, чтобы прийти к заключению о том, что вам следует делать. Обратите внимание на следующее:
resp = requests.get("http://google.com")
type(resp)
Выходы:
<class 'requests.models.Response'>
Зайдя в этот класс в своем репо (requests/models.py
), вы в конечном итоге получите определение класса под названием Response
:
class Response(object):
"""The :class:`Response <Response>` object, which contains a
server's response to an HTTP request.
"""
...
При прокрутке вниз вы увидите метод свойства с именем text
, который вы вызываете:
...
@property
def text(self):
"""Content of the response, in unicode.
If Response.encoding is None, encoding will be guessed using
``chardet``.
The encoding of the response content is determined based solely on HTTP
headers, following RFC 2616 to the letter. If you can take advantage of
non-HTTP knowledge to make a better guess at the encoding, you should
set ``r.encoding`` appropriately before accessing this property.
"""
...
Этот метод выполняет некоторое кодирование, прежде чем каждый раз возвращает возвращаемую (и ожидаемую) переменную text
; то есть он делает без кэширования . В этом случае, скорее всего, лучше просто кешировать его самостоятельно и не беспокоиться о проблемах с производительностью:
resp = requests.get("http://google.com")
html = resp.text