mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Fix Amazon EU stores. I don't know if other Amazon stores need similar fixes
This commit is contained in:
parent
1e5e4e3040
commit
e4bd7aaf44
@ -1,7 +1,7 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
from __future__ import (unicode_literals, division, absolute_import, print_function)
|
from __future__ import (unicode_literals, division, absolute_import, print_function)
|
||||||
store_version = 7 # Needed for dynamic plugin loading
|
store_version = 8 # Needed for dynamic plugin loading
|
||||||
|
|
||||||
__license__ = 'GPL 3'
|
__license__ = 'GPL 3'
|
||||||
__copyright__ = '2011, John Schember <john@nachtimwald.com>'
|
__copyright__ = '2011, John Schember <john@nachtimwald.com>'
|
||||||
@ -87,6 +87,17 @@ class AmazonDEKindleStore(StorePlugin):
|
|||||||
price_xpath = (
|
price_xpath = (
|
||||||
'.//ul[contains(@class, "rsltL") or contains(@class, "rsltGridList")]'
|
'.//ul[contains(@class, "rsltL") or contains(@class, "rsltGridList")]'
|
||||||
'//span[contains(@class, "lrg") and contains(@class, "bld")]/text()')
|
'//span[contains(@class, "lrg") and contains(@class, "bld")]/text()')
|
||||||
|
elif doc.xpath('//div[@id = "atfResults" and contains(@class, "s-result-list-parent-container")]'):
|
||||||
|
#print('new list form')
|
||||||
|
data_xpath = '//li[contains(@class, "s-result-item")]'
|
||||||
|
format_xpath = './/a[contains(@class, "a-size-small")]/text()'
|
||||||
|
format_xpath2 = './/h3[contains(@class, "s-inline")]/text()'
|
||||||
|
asin_xpath = '@data-asin'
|
||||||
|
cover_xpath = './/img[contains(@class, "cfMarker")]/@src'
|
||||||
|
title_xpath = './/h2[contains(@class, "s-access-title")]/text()'
|
||||||
|
author_xpath = ('.//div[contains(@class, "a-fixed-left-grid-col")]'
|
||||||
|
'/div/div/span//text()')
|
||||||
|
price_xpath = ('.//div[contains(@class, "a-spacing-none")]/a/span[contains(@class, "s-price")]/text()')
|
||||||
elif doc.xpath('//div[@id = "atfResults" and contains(@class, "list")]'):
|
elif doc.xpath('//div[@id = "atfResults" and contains(@class, "list")]'):
|
||||||
#print('list form')
|
#print('list form')
|
||||||
data_xpath = '//li[@class="s-result-item"]'
|
data_xpath = '//li[@class="s-result-item"]'
|
||||||
@ -141,7 +152,7 @@ class AmazonDEKindleStore(StorePlugin):
|
|||||||
if mo:
|
if mo:
|
||||||
authors = mo.group(1).strip()
|
authors = mo.group(1).strip()
|
||||||
|
|
||||||
price = ''.join(data.xpath(price_xpath))
|
price = ''.join(data.xpath(price_xpath)[-1])
|
||||||
|
|
||||||
counter -= 1
|
counter -= 1
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
from __future__ import (unicode_literals, division, absolute_import, print_function)
|
from __future__ import (unicode_literals, division, absolute_import, print_function)
|
||||||
store_version = 7 # Needed for dynamic plugin loading
|
store_version = 8 # Needed for dynamic plugin loading
|
||||||
|
|
||||||
__license__ = 'GPL 3'
|
__license__ = 'GPL 3'
|
||||||
__copyright__ = '2011, John Schember <john@nachtimwald.com>'
|
__copyright__ = '2011, John Schember <john@nachtimwald.com>'
|
||||||
@ -86,6 +86,17 @@ class AmazonESKindleStore(StorePlugin):
|
|||||||
price_xpath = (
|
price_xpath = (
|
||||||
'.//ul[contains(@class, "rsltL") or contains(@class, "rsltGridList")]'
|
'.//ul[contains(@class, "rsltL") or contains(@class, "rsltGridList")]'
|
||||||
'//span[contains(@class, "lrg") and contains(@class, "bld")]/text()')
|
'//span[contains(@class, "lrg") and contains(@class, "bld")]/text()')
|
||||||
|
elif doc.xpath('//div[@id = "atfResults" and contains(@class, "s-result-list-parent-container")]'):
|
||||||
|
#print('new list form')
|
||||||
|
data_xpath = '//li[contains(@class, "s-result-item")]'
|
||||||
|
format_xpath = './/a[contains(@class, "a-size-small")]/text()'
|
||||||
|
format_xpath2 = './/h3[contains(@class, "s-inline")]/text()'
|
||||||
|
asin_xpath = '@data-asin'
|
||||||
|
cover_xpath = './/img[contains(@class, "cfMarker")]/@src'
|
||||||
|
title_xpath = './/h2[contains(@class, "s-access-title")]/text()'
|
||||||
|
author_xpath = ('.//div[contains(@class, "a-fixed-left-grid-col")]'
|
||||||
|
'/div/div/span//text()')
|
||||||
|
price_xpath = ('.//div[contains(@class, "a-spacing-none")]/a/span[contains(@class, "s-price")]/text()')
|
||||||
elif doc.xpath('//div[@id = "atfResults" and contains(@class, "list")]'):
|
elif doc.xpath('//div[@id = "atfResults" and contains(@class, "list")]'):
|
||||||
#print('list form')
|
#print('list form')
|
||||||
data_xpath = '//li[@class="s-result-item"]'
|
data_xpath = '//li[@class="s-result-item"]'
|
||||||
@ -140,7 +151,7 @@ class AmazonESKindleStore(StorePlugin):
|
|||||||
if mo:
|
if mo:
|
||||||
authors = mo.group(1).strip()
|
authors = mo.group(1).strip()
|
||||||
|
|
||||||
price = ''.join(data.xpath(price_xpath))
|
price = ''.join(data.xpath(price_xpath)[-1])
|
||||||
|
|
||||||
counter -= 1
|
counter -= 1
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
from __future__ import (unicode_literals, division, absolute_import, print_function)
|
from __future__ import (unicode_literals, division, absolute_import, print_function)
|
||||||
store_version = 7 # Needed for dynamic plugin loading
|
store_version = 8 # Needed for dynamic plugin loading
|
||||||
|
|
||||||
__license__ = 'GPL 3'
|
__license__ = 'GPL 3'
|
||||||
__copyright__ = '2011, John Schember <john@nachtimwald.com>'
|
__copyright__ = '2011, John Schember <john@nachtimwald.com>'
|
||||||
@ -83,6 +83,17 @@ class AmazonFRKindleStore(StorePlugin):
|
|||||||
price_xpath = (
|
price_xpath = (
|
||||||
'.//ul[contains(@class, "rsltL") or contains(@class, "rsltGridList")]'
|
'.//ul[contains(@class, "rsltL") or contains(@class, "rsltGridList")]'
|
||||||
'//span[contains(@class, "lrg") and contains(@class, "bld")]/text()')
|
'//span[contains(@class, "lrg") and contains(@class, "bld")]/text()')
|
||||||
|
elif doc.xpath('//div[@id = "atfResults" and contains(@class, "s-result-list-parent-container")]'):
|
||||||
|
#print('new list form')
|
||||||
|
data_xpath = '//li[contains(@class, "s-result-item")]'
|
||||||
|
format_xpath = './/a[contains(@class, "a-size-small")]/text()'
|
||||||
|
format_xpath2 = './/h3[contains(@class, "s-inline")]/text()'
|
||||||
|
asin_xpath = '@data-asin'
|
||||||
|
cover_xpath = './/img[contains(@class, "cfMarker")]/@src'
|
||||||
|
title_xpath = './/h2[contains(@class, "s-access-title")]/text()'
|
||||||
|
author_xpath = ('.//div[contains(@class, "a-fixed-left-grid-col")]'
|
||||||
|
'/div/div/span//text()')
|
||||||
|
price_xpath = ('.//div[contains(@class, "a-spacing-none")]/a/span[contains(@class, "s-price")]/text()')
|
||||||
elif doc.xpath('//div[@id = "atfResults" and contains(@class, "list")]'):
|
elif doc.xpath('//div[@id = "atfResults" and contains(@class, "list")]'):
|
||||||
#print('list form')
|
#print('list form')
|
||||||
data_xpath = '//li[@class="s-result-item"]'
|
data_xpath = '//li[@class="s-result-item"]'
|
||||||
@ -137,7 +148,7 @@ class AmazonFRKindleStore(StorePlugin):
|
|||||||
if mo:
|
if mo:
|
||||||
authors = mo.group(1).strip()
|
authors = mo.group(1).strip()
|
||||||
|
|
||||||
price = ''.join(data.xpath(price_xpath))
|
price = ''.join(data.xpath(price_xpath)[-1])
|
||||||
|
|
||||||
counter -= 1
|
counter -= 1
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
from __future__ import (unicode_literals, division, absolute_import, print_function)
|
from __future__ import (unicode_literals, division, absolute_import, print_function)
|
||||||
store_version = 7 # Needed for dynamic plugin loading
|
store_version = 8 # Needed for dynamic plugin loading
|
||||||
|
|
||||||
__license__ = 'GPL 3'
|
__license__ = 'GPL 3'
|
||||||
__copyright__ = '2011, John Schember <john@nachtimwald.com>'
|
__copyright__ = '2011, John Schember <john@nachtimwald.com>'
|
||||||
@ -86,6 +86,17 @@ class AmazonITKindleStore(StorePlugin):
|
|||||||
price_xpath = (
|
price_xpath = (
|
||||||
'.//ul[contains(@class, "rsltL") or contains(@class, "rsltGridList")]'
|
'.//ul[contains(@class, "rsltL") or contains(@class, "rsltGridList")]'
|
||||||
'//span[contains(@class, "lrg") and contains(@class, "bld")]/text()')
|
'//span[contains(@class, "lrg") and contains(@class, "bld")]/text()')
|
||||||
|
elif doc.xpath('//div[@id = "atfResults" and contains(@class, "s-result-list-parent-container")]'):
|
||||||
|
#print('new list form')
|
||||||
|
data_xpath = '//li[contains(@class, "s-result-item")]'
|
||||||
|
format_xpath = './/a[contains(@class, "a-size-small")]/text()'
|
||||||
|
format_xpath2 = './/h3[contains(@class, "s-inline")]/text()'
|
||||||
|
asin_xpath = '@data-asin'
|
||||||
|
cover_xpath = './/img[contains(@class, "cfMarker")]/@src'
|
||||||
|
title_xpath = './/h2[contains(@class, "s-access-title")]/text()'
|
||||||
|
author_xpath = ('.//div[contains(@class, "a-fixed-left-grid-col")]'
|
||||||
|
'/div/div/span//text()')
|
||||||
|
price_xpath = ('.//div[contains(@class, "a-spacing-none")]/a/span[contains(@class, "s-price")]/text()')
|
||||||
elif doc.xpath('//div[@id = "atfResults" and contains(@class, "list")]'):
|
elif doc.xpath('//div[@id = "atfResults" and contains(@class, "list")]'):
|
||||||
#print('list form')
|
#print('list form')
|
||||||
data_xpath = '//li[@class="s-result-item"]'
|
data_xpath = '//li[@class="s-result-item"]'
|
||||||
@ -140,7 +151,7 @@ class AmazonITKindleStore(StorePlugin):
|
|||||||
if mo:
|
if mo:
|
||||||
authors = mo.group(1).strip()
|
authors = mo.group(1).strip()
|
||||||
|
|
||||||
price = ''.join(data.xpath(price_xpath))
|
price = ''.join(data.xpath(price_xpath)[-1])
|
||||||
|
|
||||||
counter -= 1
|
counter -= 1
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
from __future__ import (unicode_literals, division, absolute_import, print_function)
|
from __future__ import (unicode_literals, division, absolute_import, print_function)
|
||||||
store_version = 7 # Needed for dynamic plugin loading
|
store_version = 8 # Needed for dynamic plugin loading
|
||||||
|
|
||||||
__license__ = 'GPL 3'
|
__license__ = 'GPL 3'
|
||||||
__copyright__ = '2011, John Schember <john@nachtimwald.com>'
|
__copyright__ = '2011, John Schember <john@nachtimwald.com>'
|
||||||
@ -91,6 +91,17 @@ class AmazonUKKindleStore(StorePlugin):
|
|||||||
price_xpath = (
|
price_xpath = (
|
||||||
'.//ul[contains(@class, "rsltL") or contains(@class, "rsltGridList")]'
|
'.//ul[contains(@class, "rsltL") or contains(@class, "rsltGridList")]'
|
||||||
'//span[contains(@class, "lrg") and contains(@class, "bld")]/text()')
|
'//span[contains(@class, "lrg") and contains(@class, "bld")]/text()')
|
||||||
|
elif doc.xpath('//div[@id = "atfResults" and contains(@class, "s-result-list-parent-container")]'):
|
||||||
|
#print('new list form')
|
||||||
|
data_xpath = '//li[contains(@class, "s-result-item")]'
|
||||||
|
format_xpath = './/a[contains(@class, "a-size-small")]/text()'
|
||||||
|
format_xpath2 = './/h3[contains(@class, "s-inline")]/text()'
|
||||||
|
asin_xpath = '@data-asin'
|
||||||
|
cover_xpath = './/img[contains(@class, "cfMarker")]/@src'
|
||||||
|
title_xpath = './/h2[contains(@class, "s-access-title")]/text()'
|
||||||
|
author_xpath = ('.//div[contains(@class, "a-fixed-left-grid-col")]'
|
||||||
|
'/div/div/span//text()')
|
||||||
|
price_xpath = ('.//div[contains(@class, "a-spacing-none")]/a/span[contains(@class, "s-price")]/text()')
|
||||||
elif doc.xpath('//div[@id = "atfResults" and contains(@class, "list")]'):
|
elif doc.xpath('//div[@id = "atfResults" and contains(@class, "list")]'):
|
||||||
#print('list form')
|
#print('list form')
|
||||||
data_xpath = '//li[@class="s-result-item"]'
|
data_xpath = '//li[@class="s-result-item"]'
|
||||||
@ -145,7 +156,7 @@ class AmazonUKKindleStore(StorePlugin):
|
|||||||
if mo:
|
if mo:
|
||||||
authors = mo.group(1).strip()
|
authors = mo.group(1).strip()
|
||||||
|
|
||||||
price = ''.join(data.xpath(price_xpath))
|
price = ''.join(data.xpath(price_xpath)[-1])
|
||||||
|
|
||||||
counter -= 1
|
counter -= 1
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user