mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-08 18:54:09 -04:00
Get Books: Update the amazon store plugins for website changes
This commit is contained in:
parent
d0558c43ef
commit
b201d1e4ab
@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
from __future__ import (unicode_literals, division, absolute_import,
|
from __future__ import (unicode_literals, division, absolute_import,
|
||||||
print_function)
|
print_function)
|
||||||
store_version = 1 # Needed for dynamic plugin loading
|
store_version = 2 # Needed for dynamic plugin loading
|
||||||
|
|
||||||
from contextlib import closing
|
from contextlib import closing
|
||||||
import urllib
|
import urllib
|
||||||
@ -25,6 +25,9 @@ STORE_LINK = 'http://www.amazon.com.au'
|
|||||||
DRM_SEARCH_TEXT = 'Simultaneous Device Usage'
|
DRM_SEARCH_TEXT = 'Simultaneous Device Usage'
|
||||||
DRM_FREE_TEXT = 'Unlimited'
|
DRM_FREE_TEXT = 'Unlimited'
|
||||||
|
|
||||||
|
def get_user_agent():
|
||||||
|
return 'Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko'
|
||||||
|
|
||||||
def search_amazon(query, max_results=10, timeout=60,
|
def search_amazon(query, max_results=10, timeout=60,
|
||||||
write_html_to=None,
|
write_html_to=None,
|
||||||
base_url=SEARCH_BASE_URL,
|
base_url=SEARCH_BASE_URL,
|
||||||
@ -39,7 +42,7 @@ def search_amazon(query, max_results=10, timeout=60,
|
|||||||
return x
|
return x
|
||||||
uquery = {asbytes(k):asbytes(v) for k, v in uquery.iteritems()}
|
uquery = {asbytes(k):asbytes(v) for k, v in uquery.iteritems()}
|
||||||
url = base_url + '?' + urllib.urlencode(uquery).decode('ascii')
|
url = base_url + '?' + urllib.urlencode(uquery).decode('ascii')
|
||||||
br = browser()
|
br = browser(user_agent=get_user_agent())
|
||||||
|
|
||||||
counter = max_results
|
counter = max_results
|
||||||
with closing(br.open(url, timeout=timeout)) as f:
|
with closing(br.open(url, timeout=timeout)) as f:
|
||||||
@ -120,7 +123,7 @@ class AmazonKindleStore(StorePlugin):
|
|||||||
def get_details(self, search_result, timeout):
|
def get_details(self, search_result, timeout):
|
||||||
url = DETAILS_URL
|
url = DETAILS_URL
|
||||||
|
|
||||||
br = browser()
|
br = browser(user_agent=get_user_agent())
|
||||||
with closing(br.open(url + search_result.detail_item, timeout=timeout)) as nf:
|
with closing(br.open(url + search_result.detail_item, timeout=timeout)) as nf:
|
||||||
idata = html.fromstring(nf.read())
|
idata = html.fromstring(nf.read())
|
||||||
if idata.xpath('boolean(//div[@class="content"]//li/b[contains(text(), "' +
|
if idata.xpath('boolean(//div[@class="content"]//li/b[contains(text(), "' +
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
from __future__ import (unicode_literals, division, absolute_import,
|
from __future__ import (unicode_literals, division, absolute_import,
|
||||||
print_function)
|
print_function)
|
||||||
store_version = 3 # Needed for dynamic plugin loading
|
store_version = 4 # Needed for dynamic plugin loading
|
||||||
|
|
||||||
from contextlib import closing
|
from contextlib import closing
|
||||||
import urllib
|
import urllib
|
||||||
@ -25,6 +25,9 @@ STORE_LINK = 'http://www.amazon.ca'
|
|||||||
DRM_SEARCH_TEXT = 'Simultaneous Device Usage'
|
DRM_SEARCH_TEXT = 'Simultaneous Device Usage'
|
||||||
DRM_FREE_TEXT = 'Unlimited'
|
DRM_FREE_TEXT = 'Unlimited'
|
||||||
|
|
||||||
|
def get_user_agent():
|
||||||
|
return 'Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko'
|
||||||
|
|
||||||
def search_amazon(query, max_results=10, timeout=60,
|
def search_amazon(query, max_results=10, timeout=60,
|
||||||
write_html_to=None,
|
write_html_to=None,
|
||||||
base_url=SEARCH_BASE_URL,
|
base_url=SEARCH_BASE_URL,
|
||||||
@ -39,7 +42,7 @@ def search_amazon(query, max_results=10, timeout=60,
|
|||||||
return x
|
return x
|
||||||
uquery = {asbytes(k):asbytes(v) for k, v in uquery.iteritems()}
|
uquery = {asbytes(k):asbytes(v) for k, v in uquery.iteritems()}
|
||||||
url = base_url + '?' + urllib.urlencode(uquery).decode('ascii')
|
url = base_url + '?' + urllib.urlencode(uquery).decode('ascii')
|
||||||
br = browser()
|
br = browser(user_agent=get_user_agent())
|
||||||
|
|
||||||
counter = max_results
|
counter = max_results
|
||||||
with closing(br.open(url, timeout=timeout)) as f:
|
with closing(br.open(url, timeout=timeout)) as f:
|
||||||
@ -120,7 +123,7 @@ class AmazonKindleStore(StorePlugin):
|
|||||||
def get_details(self, search_result, timeout):
|
def get_details(self, search_result, timeout):
|
||||||
url = DETAILS_URL
|
url = DETAILS_URL
|
||||||
|
|
||||||
br = browser()
|
br = browser(user_agent=get_user_agent())
|
||||||
with closing(br.open(url + search_result.detail_item, timeout=timeout)) as nf:
|
with closing(br.open(url + search_result.detail_item, timeout=timeout)) as nf:
|
||||||
idata = html.fromstring(nf.read())
|
idata = html.fromstring(nf.read())
|
||||||
if idata.xpath('boolean(//div[@class="content"]//li/b[contains(text(), "' +
|
if idata.xpath('boolean(//div[@class="content"]//li/b[contains(text(), "' +
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
from __future__ import (unicode_literals, division, absolute_import,
|
from __future__ import (unicode_literals, division, absolute_import,
|
||||||
print_function)
|
print_function)
|
||||||
store_version = 11 # Needed for dynamic plugin loading
|
store_version = 12 # Needed for dynamic plugin loading
|
||||||
|
|
||||||
from contextlib import closing
|
from contextlib import closing
|
||||||
import urllib
|
import urllib
|
||||||
@ -27,6 +27,9 @@ STORE_LINK = 'http://www.amazon.de'
|
|||||||
DRM_SEARCH_TEXT = 'Simultaneous Device Usage'
|
DRM_SEARCH_TEXT = 'Simultaneous Device Usage'
|
||||||
DRM_FREE_TEXT = 'Unlimited'
|
DRM_FREE_TEXT = 'Unlimited'
|
||||||
|
|
||||||
|
def get_user_agent():
|
||||||
|
return 'Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko'
|
||||||
|
|
||||||
def search_amazon(query, max_results=10, timeout=60,
|
def search_amazon(query, max_results=10, timeout=60,
|
||||||
write_html_to=None,
|
write_html_to=None,
|
||||||
base_url=SEARCH_BASE_URL,
|
base_url=SEARCH_BASE_URL,
|
||||||
@ -41,7 +44,7 @@ def search_amazon(query, max_results=10, timeout=60,
|
|||||||
return x
|
return x
|
||||||
uquery = {asbytes(k):asbytes(v) for k, v in uquery.iteritems()}
|
uquery = {asbytes(k):asbytes(v) for k, v in uquery.iteritems()}
|
||||||
url = base_url + '?' + urllib.urlencode(uquery).decode('ascii')
|
url = base_url + '?' + urllib.urlencode(uquery).decode('ascii')
|
||||||
br = browser()
|
br = browser(user_agent=get_user_agent())
|
||||||
|
|
||||||
counter = max_results
|
counter = max_results
|
||||||
with closing(br.open(url, timeout=timeout)) as f:
|
with closing(br.open(url, timeout=timeout)) as f:
|
||||||
@ -122,7 +125,7 @@ class AmazonKindleStore(StorePlugin):
|
|||||||
def get_details(self, search_result, timeout):
|
def get_details(self, search_result, timeout):
|
||||||
url = DETAILS_URL
|
url = DETAILS_URL
|
||||||
|
|
||||||
br = browser()
|
br = browser(user_agent=get_user_agent())
|
||||||
with closing(br.open(url + search_result.detail_item, timeout=timeout)) as nf:
|
with closing(br.open(url + search_result.detail_item, timeout=timeout)) as nf:
|
||||||
idata = html.fromstring(nf.read())
|
idata = html.fromstring(nf.read())
|
||||||
if idata.xpath('boolean(//div[@class="content"]//li/b[contains(text(), "' +
|
if idata.xpath('boolean(//div[@class="content"]//li/b[contains(text(), "' +
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
from __future__ import (unicode_literals, division, absolute_import,
|
from __future__ import (unicode_literals, division, absolute_import,
|
||||||
print_function)
|
print_function)
|
||||||
store_version = 11 # Needed for dynamic plugin loading
|
store_version = 12 # Needed for dynamic plugin loading
|
||||||
|
|
||||||
from contextlib import closing
|
from contextlib import closing
|
||||||
import urllib
|
import urllib
|
||||||
@ -27,6 +27,9 @@ STORE_LINK = 'http://www.amazon.es'
|
|||||||
DRM_SEARCH_TEXT = 'Simultaneous Device Usage'
|
DRM_SEARCH_TEXT = 'Simultaneous Device Usage'
|
||||||
DRM_FREE_TEXT = 'Unlimited'
|
DRM_FREE_TEXT = 'Unlimited'
|
||||||
|
|
||||||
|
def get_user_agent():
|
||||||
|
return 'Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko'
|
||||||
|
|
||||||
def search_amazon(query, max_results=10, timeout=60,
|
def search_amazon(query, max_results=10, timeout=60,
|
||||||
write_html_to=None,
|
write_html_to=None,
|
||||||
base_url=SEARCH_BASE_URL,
|
base_url=SEARCH_BASE_URL,
|
||||||
@ -41,7 +44,7 @@ def search_amazon(query, max_results=10, timeout=60,
|
|||||||
return x
|
return x
|
||||||
uquery = {asbytes(k):asbytes(v) for k, v in uquery.iteritems()}
|
uquery = {asbytes(k):asbytes(v) for k, v in uquery.iteritems()}
|
||||||
url = base_url + '?' + urllib.urlencode(uquery).decode('ascii')
|
url = base_url + '?' + urllib.urlencode(uquery).decode('ascii')
|
||||||
br = browser()
|
br = browser(user_agent=get_user_agent())
|
||||||
|
|
||||||
counter = max_results
|
counter = max_results
|
||||||
with closing(br.open(url, timeout=timeout)) as f:
|
with closing(br.open(url, timeout=timeout)) as f:
|
||||||
@ -122,7 +125,7 @@ class AmazonKindleStore(StorePlugin):
|
|||||||
def get_details(self, search_result, timeout):
|
def get_details(self, search_result, timeout):
|
||||||
url = DETAILS_URL
|
url = DETAILS_URL
|
||||||
|
|
||||||
br = browser()
|
br = browser(user_agent=get_user_agent())
|
||||||
with closing(br.open(url + search_result.detail_item, timeout=timeout)) as nf:
|
with closing(br.open(url + search_result.detail_item, timeout=timeout)) as nf:
|
||||||
idata = html.fromstring(nf.read())
|
idata = html.fromstring(nf.read())
|
||||||
if idata.xpath('boolean(//div[@class="content"]//li/b[contains(text(), "' +
|
if idata.xpath('boolean(//div[@class="content"]//li/b[contains(text(), "' +
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
from __future__ import (unicode_literals, division, absolute_import,
|
from __future__ import (unicode_literals, division, absolute_import,
|
||||||
print_function)
|
print_function)
|
||||||
store_version = 11 # Needed for dynamic plugin loading
|
store_version = 12 # Needed for dynamic plugin loading
|
||||||
|
|
||||||
from contextlib import closing
|
from contextlib import closing
|
||||||
import urllib
|
import urllib
|
||||||
@ -27,6 +27,9 @@ STORE_LINK = 'http://www.amazon.fr'
|
|||||||
DRM_SEARCH_TEXT = 'Simultaneous Device Usage'
|
DRM_SEARCH_TEXT = 'Simultaneous Device Usage'
|
||||||
DRM_FREE_TEXT = 'Unlimited'
|
DRM_FREE_TEXT = 'Unlimited'
|
||||||
|
|
||||||
|
def get_user_agent():
|
||||||
|
return 'Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko'
|
||||||
|
|
||||||
def search_amazon(query, max_results=10, timeout=60,
|
def search_amazon(query, max_results=10, timeout=60,
|
||||||
write_html_to=None,
|
write_html_to=None,
|
||||||
base_url=SEARCH_BASE_URL,
|
base_url=SEARCH_BASE_URL,
|
||||||
@ -41,7 +44,7 @@ def search_amazon(query, max_results=10, timeout=60,
|
|||||||
return x
|
return x
|
||||||
uquery = {asbytes(k):asbytes(v) for k, v in uquery.iteritems()}
|
uquery = {asbytes(k):asbytes(v) for k, v in uquery.iteritems()}
|
||||||
url = base_url + '?' + urllib.urlencode(uquery).decode('ascii')
|
url = base_url + '?' + urllib.urlencode(uquery).decode('ascii')
|
||||||
br = browser()
|
br = browser(user_agent=get_user_agent())
|
||||||
|
|
||||||
counter = max_results
|
counter = max_results
|
||||||
with closing(br.open(url, timeout=timeout)) as f:
|
with closing(br.open(url, timeout=timeout)) as f:
|
||||||
@ -122,7 +125,7 @@ class AmazonKindleStore(StorePlugin):
|
|||||||
def get_details(self, search_result, timeout):
|
def get_details(self, search_result, timeout):
|
||||||
url = DETAILS_URL
|
url = DETAILS_URL
|
||||||
|
|
||||||
br = browser()
|
br = browser(user_agent=get_user_agent())
|
||||||
with closing(br.open(url + search_result.detail_item, timeout=timeout)) as nf:
|
with closing(br.open(url + search_result.detail_item, timeout=timeout)) as nf:
|
||||||
idata = html.fromstring(nf.read())
|
idata = html.fromstring(nf.read())
|
||||||
if idata.xpath('boolean(//div[@class="content"]//li/b[contains(text(), "' +
|
if idata.xpath('boolean(//div[@class="content"]//li/b[contains(text(), "' +
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
from __future__ import (unicode_literals, division, absolute_import,
|
from __future__ import (unicode_literals, division, absolute_import,
|
||||||
print_function)
|
print_function)
|
||||||
store_version = 1 # Needed for dynamic plugin loading
|
store_version = 2 # Needed for dynamic plugin loading
|
||||||
|
|
||||||
from contextlib import closing
|
from contextlib import closing
|
||||||
import urllib
|
import urllib
|
||||||
@ -25,6 +25,9 @@ STORE_LINK = 'http://www.amazon.in'
|
|||||||
DRM_SEARCH_TEXT = 'Simultaneous Device Usage'
|
DRM_SEARCH_TEXT = 'Simultaneous Device Usage'
|
||||||
DRM_FREE_TEXT = 'Unlimited'
|
DRM_FREE_TEXT = 'Unlimited'
|
||||||
|
|
||||||
|
def get_user_agent():
|
||||||
|
return 'Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko'
|
||||||
|
|
||||||
def search_amazon(query, max_results=10, timeout=60,
|
def search_amazon(query, max_results=10, timeout=60,
|
||||||
write_html_to=None,
|
write_html_to=None,
|
||||||
base_url=SEARCH_BASE_URL,
|
base_url=SEARCH_BASE_URL,
|
||||||
@ -39,7 +42,7 @@ def search_amazon(query, max_results=10, timeout=60,
|
|||||||
return x
|
return x
|
||||||
uquery = {asbytes(k):asbytes(v) for k, v in uquery.iteritems()}
|
uquery = {asbytes(k):asbytes(v) for k, v in uquery.iteritems()}
|
||||||
url = base_url + '?' + urllib.urlencode(uquery).decode('ascii')
|
url = base_url + '?' + urllib.urlencode(uquery).decode('ascii')
|
||||||
br = browser()
|
br = browser(user_agent=get_user_agent())
|
||||||
|
|
||||||
counter = max_results
|
counter = max_results
|
||||||
with closing(br.open(url, timeout=timeout)) as f:
|
with closing(br.open(url, timeout=timeout)) as f:
|
||||||
@ -122,7 +125,7 @@ class AmazonKindleStore(StorePlugin):
|
|||||||
def get_details(self, search_result, timeout):
|
def get_details(self, search_result, timeout):
|
||||||
url = DETAILS_URL
|
url = DETAILS_URL
|
||||||
|
|
||||||
br = browser()
|
br = browser(user_agent=get_user_agent())
|
||||||
with closing(br.open(url + search_result.detail_item, timeout=timeout)) as nf:
|
with closing(br.open(url + search_result.detail_item, timeout=timeout)) as nf:
|
||||||
idata = html.fromstring(nf.read())
|
idata = html.fromstring(nf.read())
|
||||||
if idata.xpath('boolean(//div[@class="content"]//li/b[contains(text(), "' +
|
if idata.xpath('boolean(//div[@class="content"]//li/b[contains(text(), "' +
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
from __future__ import (unicode_literals, division, absolute_import,
|
from __future__ import (unicode_literals, division, absolute_import,
|
||||||
print_function)
|
print_function)
|
||||||
store_version = 11 # Needed for dynamic plugin loading
|
store_version = 12 # Needed for dynamic plugin loading
|
||||||
|
|
||||||
from contextlib import closing
|
from contextlib import closing
|
||||||
import urllib
|
import urllib
|
||||||
@ -27,6 +27,9 @@ STORE_LINK = 'http://www.amazon.it'
|
|||||||
DRM_SEARCH_TEXT = 'Simultaneous Device Usage'
|
DRM_SEARCH_TEXT = 'Simultaneous Device Usage'
|
||||||
DRM_FREE_TEXT = 'Unlimited'
|
DRM_FREE_TEXT = 'Unlimited'
|
||||||
|
|
||||||
|
def get_user_agent():
|
||||||
|
return 'Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko'
|
||||||
|
|
||||||
def search_amazon(query, max_results=10, timeout=60,
|
def search_amazon(query, max_results=10, timeout=60,
|
||||||
write_html_to=None,
|
write_html_to=None,
|
||||||
base_url=SEARCH_BASE_URL,
|
base_url=SEARCH_BASE_URL,
|
||||||
@ -41,7 +44,7 @@ def search_amazon(query, max_results=10, timeout=60,
|
|||||||
return x
|
return x
|
||||||
uquery = {asbytes(k):asbytes(v) for k, v in uquery.iteritems()}
|
uquery = {asbytes(k):asbytes(v) for k, v in uquery.iteritems()}
|
||||||
url = base_url + '?' + urllib.urlencode(uquery).decode('ascii')
|
url = base_url + '?' + urllib.urlencode(uquery).decode('ascii')
|
||||||
br = browser()
|
br = browser(user_agent=get_user_agent())
|
||||||
|
|
||||||
counter = max_results
|
counter = max_results
|
||||||
with closing(br.open(url, timeout=timeout)) as f:
|
with closing(br.open(url, timeout=timeout)) as f:
|
||||||
@ -122,7 +125,7 @@ class AmazonKindleStore(StorePlugin):
|
|||||||
def get_details(self, search_result, timeout):
|
def get_details(self, search_result, timeout):
|
||||||
url = DETAILS_URL
|
url = DETAILS_URL
|
||||||
|
|
||||||
br = browser()
|
br = browser(user_agent=get_user_agent())
|
||||||
with closing(br.open(url + search_result.detail_item, timeout=timeout)) as nf:
|
with closing(br.open(url + search_result.detail_item, timeout=timeout)) as nf:
|
||||||
idata = html.fromstring(nf.read())
|
idata = html.fromstring(nf.read())
|
||||||
if idata.xpath('boolean(//div[@class="content"]//li/b[contains(text(), "' +
|
if idata.xpath('boolean(//div[@class="content"]//li/b[contains(text(), "' +
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
from __future__ import (unicode_literals, division, absolute_import,
|
from __future__ import (unicode_literals, division, absolute_import,
|
||||||
print_function)
|
print_function)
|
||||||
store_version = 11 # Needed for dynamic plugin loading
|
store_version = 12 # Needed for dynamic plugin loading
|
||||||
|
|
||||||
from contextlib import closing
|
from contextlib import closing
|
||||||
import urllib
|
import urllib
|
||||||
@ -25,6 +25,9 @@ STORE_LINK = 'http://www.amazon.com/Kindle-eBooks'
|
|||||||
DRM_SEARCH_TEXT = 'Simultaneous Device Usage'
|
DRM_SEARCH_TEXT = 'Simultaneous Device Usage'
|
||||||
DRM_FREE_TEXT = 'Unlimited'
|
DRM_FREE_TEXT = 'Unlimited'
|
||||||
|
|
||||||
|
def get_user_agent():
|
||||||
|
return 'Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko'
|
||||||
|
|
||||||
def search_amazon(query, max_results=10, timeout=60,
|
def search_amazon(query, max_results=10, timeout=60,
|
||||||
write_html_to=None,
|
write_html_to=None,
|
||||||
base_url=SEARCH_BASE_URL,
|
base_url=SEARCH_BASE_URL,
|
||||||
@ -39,7 +42,7 @@ def search_amazon(query, max_results=10, timeout=60,
|
|||||||
return x
|
return x
|
||||||
uquery = {asbytes(k):asbytes(v) for k, v in uquery.iteritems()}
|
uquery = {asbytes(k):asbytes(v) for k, v in uquery.iteritems()}
|
||||||
url = base_url + '?' + urllib.urlencode(uquery).decode('ascii')
|
url = base_url + '?' + urllib.urlencode(uquery).decode('ascii')
|
||||||
br = browser()
|
br = browser(user_agent=get_user_agent())
|
||||||
|
|
||||||
counter = max_results
|
counter = max_results
|
||||||
with closing(br.open(url, timeout=timeout)) as f:
|
with closing(br.open(url, timeout=timeout)) as f:
|
||||||
@ -157,7 +160,7 @@ class AmazonKindleStore(StorePlugin):
|
|||||||
def get_details(self, search_result, timeout):
|
def get_details(self, search_result, timeout):
|
||||||
url = DETAILS_URL
|
url = DETAILS_URL
|
||||||
|
|
||||||
br = browser()
|
br = browser(user_agent=get_user_agent())
|
||||||
with closing(br.open(url + search_result.detail_item, timeout=timeout)) as nf:
|
with closing(br.open(url + search_result.detail_item, timeout=timeout)) as nf:
|
||||||
idata = html.fromstring(nf.read())
|
idata = html.fromstring(nf.read())
|
||||||
if idata.xpath('boolean(//div[@class="content"]//li/b[contains(text(), "' +
|
if idata.xpath('boolean(//div[@class="content"]//li/b[contains(text(), "' +
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
from __future__ import (unicode_literals, division, absolute_import,
|
from __future__ import (unicode_literals, division, absolute_import,
|
||||||
print_function)
|
print_function)
|
||||||
store_version = 11 # Needed for dynamic plugin loading
|
store_version = 12 # Needed for dynamic plugin loading
|
||||||
|
|
||||||
from contextlib import closing
|
from contextlib import closing
|
||||||
import urllib
|
import urllib
|
||||||
@ -25,6 +25,9 @@ STORE_LINK = 'http://www.amazon.co.uk'
|
|||||||
DRM_SEARCH_TEXT = 'Simultaneous Device Usage'
|
DRM_SEARCH_TEXT = 'Simultaneous Device Usage'
|
||||||
DRM_FREE_TEXT = 'Unlimited'
|
DRM_FREE_TEXT = 'Unlimited'
|
||||||
|
|
||||||
|
def get_user_agent():
|
||||||
|
return 'Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko'
|
||||||
|
|
||||||
def search_amazon(query, max_results=10, timeout=60,
|
def search_amazon(query, max_results=10, timeout=60,
|
||||||
write_html_to=None,
|
write_html_to=None,
|
||||||
base_url=SEARCH_BASE_URL,
|
base_url=SEARCH_BASE_URL,
|
||||||
@ -39,7 +42,7 @@ def search_amazon(query, max_results=10, timeout=60,
|
|||||||
return x
|
return x
|
||||||
uquery = {asbytes(k):asbytes(v) for k, v in uquery.iteritems()}
|
uquery = {asbytes(k):asbytes(v) for k, v in uquery.iteritems()}
|
||||||
url = base_url + '?' + urllib.urlencode(uquery).decode('ascii')
|
url = base_url + '?' + urllib.urlencode(uquery).decode('ascii')
|
||||||
br = browser()
|
br = browser(user_agent=get_user_agent())
|
||||||
|
|
||||||
counter = max_results
|
counter = max_results
|
||||||
with closing(br.open(url, timeout=timeout)) as f:
|
with closing(br.open(url, timeout=timeout)) as f:
|
||||||
@ -120,7 +123,7 @@ class AmazonKindleStore(StorePlugin):
|
|||||||
def get_details(self, search_result, timeout):
|
def get_details(self, search_result, timeout):
|
||||||
url = DETAILS_URL
|
url = DETAILS_URL
|
||||||
|
|
||||||
br = browser()
|
br = browser(user_agent=get_user_agent())
|
||||||
with closing(br.open(url + search_result.detail_item, timeout=timeout)) as nf:
|
with closing(br.open(url + search_result.detail_item, timeout=timeout)) as nf:
|
||||||
idata = html.fromstring(nf.read())
|
idata = html.fromstring(nf.read())
|
||||||
if idata.xpath('boolean(//div[@class="content"]//li/b[contains(text(), "' +
|
if idata.xpath('boolean(//div[@class="content"]//li/b[contains(text(), "' +
|
||||||
|
Loading…
x
Reference in New Issue
Block a user