Added manga-py source
This commit is contained in:
48
manga-py-stable_1.x/manga_py/base_classes/web_driver.py
Normal file
48
manga-py-stable_1.x/manga_py/base_classes/web_driver.py
Normal file
@@ -0,0 +1,48 @@
|
||||
from os import chmod
|
||||
from sys import platform
|
||||
from zipfile import ZipFile
|
||||
|
||||
from requests import get
|
||||
|
||||
from manga_py.fs import is_file, dirname, path_join, get_util_home_path
|
||||
|
||||
|
||||
class WebDriver:
|
||||
driver_version = '2.40'
|
||||
|
||||
@staticmethod
|
||||
def is_win():
|
||||
return ~platform.find('win32')
|
||||
|
||||
def download_drivder(self):
|
||||
url_prefix = 'https://chromedriver.storage.googleapis.com/'
|
||||
url = '/chromedriver_linux64.zip'
|
||||
if ~platform.find('darwin'):
|
||||
url = '/chromedriver_mac64.zip'
|
||||
if self.is_win():
|
||||
url = '/chromedriver_win32.zip'
|
||||
|
||||
path = path_join(get_util_home_path(), 'driver.zip')
|
||||
|
||||
with open(path, 'wb') as driver:
|
||||
driver.write(get(url_prefix + self.driver_version + url).content)
|
||||
driver.close()
|
||||
with ZipFile(path) as file:
|
||||
file.extractall(dirname(self._driver_path()))
|
||||
|
||||
def _driver_path(self):
|
||||
if self.is_win():
|
||||
driver = 'chromedriver.exe'
|
||||
else:
|
||||
driver = 'chromedriver'
|
||||
return path_join(get_util_home_path(), driver)
|
||||
|
||||
def get_driver(self):
|
||||
from selenium import webdriver # need, if captcha detected
|
||||
driver_path = self._driver_path()
|
||||
if not is_file(driver_path):
|
||||
self.download_drivder()
|
||||
self.is_win() or chmod(driver_path, 0o755)
|
||||
driver = webdriver.Chrome(executable_path=driver_path)
|
||||
driver.set_window_size(500, 600)
|
||||
return driver
|
||||
Reference in New Issue
Block a user