diff --git a/src/calibre/ebooks/oeb/reader.py b/src/calibre/ebooks/oeb/reader.py index 5bb6b193f7..9e4b6238a0 100644 --- a/src/calibre/ebooks/oeb/reader.py +++ b/src/calibre/ebooks/oeb/reader.py @@ -188,8 +188,13 @@ class OEBReader(object): href, _ = urldefrag(href) if not href: continue - href = item.abshref(urlnormalize(href)) - scheme = urlparse(href).scheme + try: + href = item.abshref(urlnormalize(href)) + scheme = urlparse(href).scheme + except: + self.oeb.log.exception( + 'Skipping invalid href: %r'%href) + continue if not scheme and href not in known: new.add(href) elif item.media_type in OEB_STYLES: diff --git a/src/calibre/ebooks/oeb/transforms/trimmanifest.py b/src/calibre/ebooks/oeb/transforms/trimmanifest.py index 95501dbb9b..3d56f0ef3d 100644 --- a/src/calibre/ebooks/oeb/transforms/trimmanifest.py +++ b/src/calibre/ebooks/oeb/transforms/trimmanifest.py @@ -47,7 +47,10 @@ class ManifestTrimmer(object): item.data is not None: hrefs = [r[2] for r in iterlinks(item.data)] for href in hrefs: - href = item.abshref(urlnormalize(href)) + try: + href = item.abshref(urlnormalize(href)) + except: + continue if href in oeb.manifest.hrefs: found = oeb.manifest.hrefs[href] if found not in used: