Traceback (most recent call last): File "/home/arbel/sites/lrscraper/scrapers/akron_scraper.py", line 359, 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/akron_scraper.py", line 355, in main await scraper.run() File "/home/arbel/sites/lrscraper/light_base_scraper.py", line 672, in run items = await self.discover_urls() ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/arbel/sites/lrscraper/scrapers/akron_scraper.py", line 81, in discover_urls for entry in self._parse_issue_items(issue_html, issue_meta): ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/arbel/sites/lrscraper/scrapers/akron_scraper.py", line 181, in _parse_issue_items title = _clean_title( ^^^^^^^^^^^^^ File "/home/arbel/sites/lrscraper/scrapers/akron_scraper.py", line 312, in _clean_title text = re.sub(r"\(\s*\d+\\s*kb\\s*\\)$", "", text, flags=re.IGNORECASE).strip() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/arbel/miniconda3/lib/python3.11/re/__init__.py", line 185, in sub return _compile(pattern, flags).sub(repl, string, count) ^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/arbel/miniconda3/lib/python3.11/re/__init__.py", line 294, in _compile p = _compiler.compile(pattern, flags) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/arbel/miniconda3/lib/python3.11/re/_compiler.py", line 743, in compile p = _parser.parse(p, flags) ^^^^^^^^^^^^^^^^^^^^^^^ File "/home/arbel/miniconda3/lib/python3.11/re/_parser.py", line 987, in parse raise source.error("unbalanced parenthesis") re.error: unbalanced parenthesis at position 20