@@ -99,19 +99,22 @@ def parse_for_embedded_puzzle(url, **kwargs):
9999
100100 return dl , puzzle_url
101101
102- if not soup :
103- res = requests .get (src )
104- soup = BeautifulSoup (res .text , 'lxml' )
105-
106- for script in [s for s in soup .find_all ('script' ) if s .get ('src' )]:
107- js_url = urllib .parse .urljoin (url , script .get ('src' ))
108- res = requests .get (js_url , headers = {'User-Agent' :'xword-dl' })
109- if res .text .startswith ('var CrosswordPuzzleData' ):
110- dl = downloader .CrosswordCompilerDownloader (url = url , ** kwargs )
111- puzzle_url = js_url
112- dl .fetch_data = dl .fetch_jsencoded_data
113-
114- return dl , puzzle_url
102+ try :
103+ if not soup :
104+ res = requests .get (src )
105+ soup = BeautifulSoup (res .text , 'lxml' )
106+
107+ for script in [s for s in soup .find_all ('script' ) if s .get ('src' )]:
108+ js_url = urllib .parse .urljoin (url , script .get ('src' ))
109+ res = requests .get (js_url , headers = {'User-Agent' :'xword-dl' })
110+ if res .text .startswith ('var CrosswordPuzzleData' ):
111+ dl = downloader .CrosswordCompilerDownloader (url = url , ** kwargs )
112+ puzzle_url = js_url
113+ dl .fetch_data = dl .fetch_jsencoded_data
114+
115+ return dl , puzzle_url
116+ except Exception as e :
117+ # print(f"Error processing {src}: {e}")
115118
116119 soup = None
117120
@@ -121,7 +124,7 @@ def parse_for_embedded_puzzle(url, **kwargs):
121124def get_supported_outlets (command_only = True ):
122125 all_classes = inspect .getmembers (sys .modules ['xword_dl.downloader' ],
123126 inspect .isclass )
124- dls = [d for d in all_classes if issubclass (d [1 ],
127+ dls = [d for d in all_classes if issubclass (d [1 ],
125128 downloader .BaseDownloader )]
126129
127130 if command_only :
0 commit comments