diff --git a/recipes/natgeomag.recipe b/recipes/natgeomag.recipe index 5f3aaee5eb..4e5fc6bb4d 100644 --- a/recipes/natgeomag.recipe +++ b/recipes/natgeomag.recipe @@ -23,8 +23,10 @@ def classes(classes): def extract_json(raw): s = raw.find("window['__natgeo__']") script = raw[s:raw.find('', s)] - return json.loads( - script[script.find('{'):].rstrip(';'))['page']['content']['article'] + data = json.loads(script[script.find('{'):].rstrip(';'))['page']['content'] + if 'article' in data: + return data['article'] + return data['prismarticle'] def parse_contributors(grp): @@ -36,16 +38,17 @@ def parse_contributors(grp): def parse_lead_image(media): - if 'dsc' in media['image']: - yield '

{}
'.format( - escape(media['image']['src'], True), escape(media['image']['dsc'], True)) - else: - yield '

'.format(escape(media['image']['src'], True)) - if 'caption' in media: - yield '
' + media['caption'] + '
' - if 'credit' in media: - yield '
' + media['credit'] + '
' - yield '

' + if 'image' in media: + if 'dsc' in media['image']: + yield '

{}
'.format( + escape(media['image']['src'], True), escape(media['image']['dsc'], True)) + else: + yield '

'.format(escape(media['image']['src'], True)) + if 'caption' in media: + yield '
' + media['caption'] + '
' + if 'credit' in media: + yield '
' + media['credit'] + '
' + yield '

' def parse_body(item):