Добавлен новый метод — gpsa
This commit is contained in:
+30
-18
@@ -108,11 +108,28 @@ class Pars:
|
|||||||
except Exception as e:
|
except Exception as e:
|
||||||
raise RuntimeError(e) from e
|
raise RuntimeError(e) from e
|
||||||
|
|
||||||
|
def __scrollAndSave(self, driver, timeSleep, pathToSaveFile):
|
||||||
|
# Прокручиваем страницу до самого низа
|
||||||
|
lastHeight = driver.execute_script("return document.body.scrollHeight")
|
||||||
|
while True:
|
||||||
|
# Прокручиваем до низа страницы
|
||||||
|
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
|
||||||
|
# Ждем загрузки страницы
|
||||||
|
sleep(timeSleep)
|
||||||
|
# Вычисляем новую высоту страницы
|
||||||
|
newHeight = driver.execute_script("return document.body.scrollHeight")
|
||||||
|
if newHeight == lastHeight:
|
||||||
|
break
|
||||||
|
lastHeight = newHeight
|
||||||
|
htmlContent = driver.page_source
|
||||||
|
with open(pathToSaveFile, "w", encoding="utf-8") as file:
|
||||||
|
file.write(htmlContent)
|
||||||
|
|
||||||
def getDinamicPage(self, pathToSaveFile: str, url: str, closeWindow: bool = 1, timeSleep: int = 2) -> None:
|
def getDinamicPage(self, pathToSaveFile: str, url: str, closeWindow: bool = 1, timeSleep: int = 2) -> None:
|
||||||
'''Получаем динамическую страницу
|
'''Получаем динамическую страницу
|
||||||
|
|
||||||
pathToSaveFile: путь, куда сохранится полученный файл
|
pathToSaveFile: путь, куда сохранится полученный файл
|
||||||
url: ссылка на данные
|
url: ссылка на сайт
|
||||||
closeWindow (0/1): если указана единица, то браузер открывается в фоновом режиме, 0 — открывается как обычное приложение
|
closeWindow (0/1): если указана единица, то браузер открывается в фоновом режиме, 0 — открывается как обычное приложение
|
||||||
timeSleep: время ожидания браузера перед тем как скролить страницу дальше'''
|
timeSleep: время ожидания браузера перед тем как скролить страницу дальше'''
|
||||||
|
|
||||||
@@ -124,22 +141,17 @@ class Pars:
|
|||||||
# открываем браузер
|
# открываем браузер
|
||||||
with webdriver.Chrome(options=options) as driver:
|
with webdriver.Chrome(options=options) as driver:
|
||||||
driver.get(url)
|
driver.get(url)
|
||||||
# Прокручиваем страницу до самого низа
|
self.__scrollAndSave(driver, timeSleep, pathToSaveFile)
|
||||||
lastHeight = driver.execute_script("return document.body.scrollHeight")
|
|
||||||
|
|
||||||
while True:
|
def gpsa(self, pathToSaveFile: str, url: str, timeSleep=2):
|
||||||
# Прокручиваем до низа страницы
|
'''Получаем страницу в полуавтоматическом режиме
|
||||||
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
|
gpsa - get page semi-automatically
|
||||||
# Ждем загрузки страницы
|
|
||||||
sleep(timeSleep)
|
|
||||||
# Вычисляем новую высоту страницы
|
|
||||||
newHeight = driver.execute_script("return document.body.scrollHeight")
|
|
||||||
if newHeight == lastHeight:
|
|
||||||
break
|
|
||||||
lastHeight = newHeight
|
|
||||||
|
|
||||||
# Получаем HTML-код страницы
|
pathToSaveFile: путь, куда сохранится полученный файл
|
||||||
htmlContent = driver.page_source
|
url: ссылка на сайт
|
||||||
# Сохраняем HTML-код в файл
|
timeSleep: время ожидания браузера перед тем как скролить страницу дальше'''
|
||||||
with open(pathToSaveFile, "w", encoding="utf-8") as file:
|
|
||||||
file.write(htmlContent)
|
with webdriver.Chrome() as driver:
|
||||||
|
driver.get(url)
|
||||||
|
a = input('Нажми ENTER когда закончишь')
|
||||||
|
self.__scrollAndSave(driver, timeSleep, pathToSaveFile)
|
||||||
|
|||||||
Reference in New Issue
Block a user