diff --git a/clients_protocol/__init__.py b/clients_protocol/__init__.py index 9eacaf0..8b94f5d 100644 --- a/clients_protocol/__init__.py +++ b/clients_protocol/__init__.py @@ -48,6 +48,7 @@ class AbstractClient(abc.ABC): if 'method' in kwargs: method = kwargs['method'] del kwargs['method'] + kwargs.setdefault('headers', {}).setdefault('Origin', url) # TODO? return self.session.request( method, url, @@ -65,18 +66,22 @@ class AbstractClient(abc.ABC): params=None, **kwargs, ) -> None | bs4.BeautifulSoup: + kwargs.setdefault('headers', {}).setdefault('Accept', 'text/html') text = self.fetch_text(url, params, **kwargs) if text is None: return None return lxml.html.document_fromstring(text) def fetch_soup(self, url: str, params=None, **kwargs) -> None | bs4.BeautifulSoup: + kwargs.setdefault('headers', {}).setdefault('Accept', 'text/html') text = self.fetch_text(url, params, **kwargs) if text is None: return None return bs4.BeautifulSoup(text, 'html.parser') def fetch_json(self, url: str, params=None, **kwargs) -> None | dict[str, Any]: + kwargs.setdefault('headers', {}).setdefault('Accept', 'application/json') + response = self.fetch(url, params, **kwargs) loaded_json = response.json() if API_ERROR_KEY in loaded_json: