diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..a8f6a58 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,5 @@ +{ + "cSpell.words": [ + "referer" + ] +} \ No newline at end of file diff --git a/README.md b/README.md index d4e4da5..9169bfe 100644 --- a/README.md +++ b/README.md @@ -5,6 +5,7 @@ A Python library for simplified HTTP requests, featuring rate limiting, browser- ## ToDo - [ ] basic structure +- [ ] caching - [ ] add cloudscraper ## License diff --git a/python_requests/connections.py b/python_requests/connections.py index abdc01d..58e8a7a 100644 --- a/python_requests/connections.py +++ b/python_requests/connections.py @@ -1,8 +1,22 @@ from __future__ import annotations from typing import Optional import requests +from urllib.parse import urlparse, urlunsplit, ParseResult class Connection: def __init__(self, session: Optional[requests.Session] = None) -> None: self.session = session if session is not None else requests.Session() + + def generate_headers(self, referer: Optional[str] = None): + headers = { + "User-Agent": "Mozilla/5.0 (X11; Linux x86_64; rv:139.0) Gecko/20100101 Firefox/139.0", + "Connection": "keep-alive", + "Accept-Language": "en-US,en;q=0.5", + } + + if referer is not None: + headers["Referer"] = referer + + self.session.headers.update(**headers) +