Allow requesting without downloading

This commit is contained in:
2025-08-02 15:41:50 +02:00
parent 3372af33c4
commit 1653e8db7c

View File

@ -15,24 +15,26 @@ class Scraper:
def __init__(self):
self._scraper: CloudScraper = CloudScraper()
def _get(self, url: str) -> bytes:
def _get(self, url: str, body: bool) -> bytes | Response:
res: Response = self._scraper.get(url)
if not body:
return res
if res.status_code != 200:
raise ScraperException(res, "Request did not succeed")
return res.content
@retry(Exception, tries=5, delay=3)
def _retry_get(self, url: str) -> bytes:
return self._get(url)
def _retry_get(self, url: str, body: bool) -> bytes | Response:
return self._get(url, body=body)
def get(self, url: str, retry: bool = True):
def get(self, url: str, retry: bool = True, body: bool = True):
if retry:
return self._retry_get(url)
return self._retry_get(url, body=body)
else:
return self._get(url)
return self._get(url, body=body)
def get_html(self, url: str, retry: bool = True) -> BeautifulSoup:
return bs4(self.get(url=url, retry=retry))
return bs4(self.get(url=url, retry=retry, body=True))
# Default scraper