Traceback (most recent call last): File "/home/arbel/sites/lrscraper/scrapers/uc_davis_law_review_scraper.py", line 260, in asyncio.run(main()) File "/home/arbel/miniconda3/lib/python3.11/asyncio/runners.py", line 190, in run return runner.run(main) ^^^^^^^^^^^^^^^^ File "/home/arbel/miniconda3/lib/python3.11/asyncio/runners.py", line 118, in run return self._loop.run_until_complete(task) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/arbel/miniconda3/lib/python3.11/asyncio/base_events.py", line 653, in run_until_complete return future.result() ^^^^^^^^^^^^^^^ File "/home/arbel/sites/lrscraper/scrapers/uc_davis_law_review_scraper.py", line 256, in main await scraper.run() File "/home/arbel/sites/lrscraper/light_base_scraper.py", line 661, in run items = await self.discover_urls() ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/arbel/sites/lrscraper/scrapers/uc_davis_law_review_scraper.py", line 50, in discover_urls html = await self._fetch_html(self.archives_url) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/arbel/sites/lrscraper/scrapers/uc_davis_law_review_scraper.py", line 158, in _fetch_html return await asyncio.to_thread(_task) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/arbel/miniconda3/lib/python3.11/asyncio/threads.py", line 25, in to_thread return await loop.run_in_executor(None, func_call) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/arbel/miniconda3/lib/python3.11/concurrent/futures/thread.py", line 58, in run result = self.fn(*self.args, **self.kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/arbel/sites/lrscraper/scrapers/uc_davis_law_review_scraper.py", line 134, in _task server = str(getattr(resp, "headers", {}) or {}).get("server", "") or "" ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ AttributeError: 'str' object has no attribute 'get'