From f62ea91a1010444b05f448250c58dfafc19bf86c Mon Sep 17 00:00:00 2001 From: Klaus-Uwe Mitterer Date: Sun, 16 Jul 2017 12:40:19 +0200 Subject: [PATCH] Update .gitignore --- .gitignore | 3 +++ helpers/__init__.py | 6 +++--- readit.py | 22 +++++++++++----------- 3 files changed, 17 insertions(+), 14 deletions(-) diff --git a/.gitignore b/.gitignore index 4023ea1..ccd8322 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,6 @@ config.cfg geckodriver.log +ghostdriver.log + +node_modules/ diff --git a/helpers/__init__.py b/helpers/__init__.py index f8990a7..736153b 100644 --- a/helpers/__init__.py +++ b/helpers/__init__.py @@ -27,9 +27,9 @@ def makePDF(issue, pages, type = JPG): pdf.output("%s/issue.pdf" % str(issue), "F") -def downloadPage(url, issue, page): - f = urllib.request.urlopen(url) +def downloadPage(canvas, issue, page, driver): + b64 = driver.execute_script("return arguments[0].toDataURL('image/png').substring(21);", canvas) with open("%s/%i.png" % (str(issue), int(page)), "b+w") as o: - o.write(f.read()) + o.write(b64) diff --git a/readit.py b/readit.py index d082e56..aeb58db 100755 --- a/readit.py +++ b/readit.py @@ -28,7 +28,7 @@ def loginHandler(driver, user = setuptools.riuser(), password = setuptools.ripas curfield = driver.find_element_by_name("password") curfield.send_keys(password) - + curfield.send_keys(Keys.RETURN) time.sleep(3) @@ -46,17 +46,16 @@ def pageHandler(driver, id, page): if not loadPage("https://app.myreadit.com/reader/%s#%i" % (id, int(page)), driver): return False - img = driver.find_element_by_id("page1").get_attribute("src") - helpers.downloadPage(img, id, page) - try: - img2 = driver.find_element_by_id("page2").get_attribute("src") - helpers.downloadPage(img2, id, page + 1) - - return 2 + img = driver.find_element_by_tag_name("canvas") + helpers.downloadPage(img, id, page) except: - return 1 + print(driver.page_source) + driver.save_screenshot("screenshot.png") + raise + + return 1 if page == 1 else 2 def magazineHandler(driver, id, makepdf = True): if helpers.makeDir(id): @@ -79,8 +78,9 @@ if __name__ == "__main__": parser.add_argument("id", help="ID of the magazine to be downloaded. May be a URL.", nargs="+") ids = parser.parse_args().id - driver = webdriver.Firefox() - + + driver = webdriver.PhantomJS(service_args=["--web-security=no"]) + for id in ids: use = id.split("/")[-1].split("#")[0] magazineHandler(driver, use)