From 68cc6ae288875d3f8f393404d4e7214dda1a6214 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sun, 5 Jun 2016 10:13:34 +0530 Subject: [PATCH] Another variant of Amazon cover markup Seems to be user agent dependent --- src/calibre/ebooks/metadata/sources/amazon.py | 42 +++++++++---------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/src/calibre/ebooks/metadata/sources/amazon.py b/src/calibre/ebooks/metadata/sources/amazon.py index fcf1e90637..294ad92035 100644 --- a/src/calibre/ebooks/metadata/sources/amazon.py +++ b/src/calibre/ebooks/metadata/sources/amazon.py @@ -605,27 +605,27 @@ class Worker(Thread): # Get details {{{ imgs = root.xpath('//img[(@id="prodImage" or @id="original-main-image" or @id="main-image" or @id="main-image-nonjs") and @src]') if not imgs: - imgs = root.xpath('//div[@class="main-image-inner-wrapper"]/img[@src]') - if not imgs: - imgs = root.xpath('//div[@id="main-image-container"]//img[@src]') - if not imgs: - imgs = root.xpath('//div[@id="mainImageContainer"]//img[@data-a-dynamic-image]') - for img in imgs: - try: - idata = json.loads(img.get('data-a-dynamic-image')) - except Exception: - imgs = () - else: - mwidth = 0 - try: - url = None - for iurl, (width, height) in idata.iteritems(): - if width > mwidth: - mwidth = width - url = iurl - return url - except Exception: - pass + imgs = ( + root.xpath('//div[@class="main-image-inner-wrapper"]/img[@src]') or + root.xpath('//div[@id="main-image-container" or @id="ebooks-main-image-container"]//img[@src]') or + root.xpath('//div[@id="mainImageContainer"]//img[@data-a-dynamic-image]') + ) + for img in imgs: + try: + idata = json.loads(img.get('data-a-dynamic-image')) + except Exception: + imgs = () + else: + mwidth = 0 + try: + url = None + for iurl, (width, height) in idata.iteritems(): + if width > mwidth: + mwidth = width + url = iurl + return url + except Exception: + pass for img in imgs: src = img.get('src')