'Makes a request to the passed URL, returns and stores a PyQuery
document for the response body.
If the document errors (HTTP codes 400 or higher), an instance of
requests.exceptions.HTTPError is raised, with an additional property
`response` containing the response object.'

def _get_document(self):

    with closing(requests.get(self.url, stream=True)) as response:
        if (response.status_code >= 400):
            exception = requests.exceptions.HTTPError()
            exception.response = response
            raise exception
        self._markup = response.content
        self._document = pq(self._markup)
    return self._document
