Вследствие нехватки консолей на рынке возникло желание создать собственный монитор "Озона" на наличие PS5 и XBOX SX. В результате 3-4-часового гуглинга получилось написать такой вот монитор:
from selenium import webdriver
import csv
from datetime import datetime
def chek(browser, console):
a = 1
all_span = browser.find_elements_by_tag_name("h2")
all_span = [i.text for i in all_span]
is_availiable = ""
if "Этот товар закончился" in all_span:
is_available = False
else:
all_span = browser.find_elements_by_tag_name("div")
#all_span = [i.text for i in all_span]
if "Добавить в корзину" in all_span:
is_available = True
with open("ps5.csv", "a") as csvfile:
write = csv.writer(csvfile)
date = datetime.now()
write.writerow([date, is_available, console])
else:
browser.close()
is_available = False
a = 0
return a
options = webdriver.ChromeOptions()
options.add_argument('--headless')
options.add_argument('--no-sandbox')
options.add_argument('--disable-dev-shm-usage')
#options.add_argument('user-agent=Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:39.0) Gecko/20100101 Firefox/39.0')
browser = webdriver.Chrome("C:\\WebDriver\\bin\\chromedriver.exe")
browser.set_page_load_timeout(60)
while True:
browser.get("https://www.ozon.ru/product/igrovaya-konsol-playstation-5-digital-edition-belyy-178715781/?sh=gY51skAT")
a = chek(browser, 'ps')
if a == 0:
browser = webdriver.Chrome("C:\\WebDriver\\bin\\chromedriver.exe")
browser.get("https://www.ozon.ru/product/igrovaya-konsol-microsoft-xbox-series-x-chernyy-173667655/?sh=fkCugO8e")
a = chek(browser, "xbox")
if a == 0:
browser = webdriver.Chrome("C:\\WebDriver\\bin\\chromedriver.exe")
Работает все по принципу "обновляй страницу, пока не появится". Возник вопрос: как при этом обойти капчу при многократном обновлении страницы? (Пока что я просто закрываю браузер и открываю вновь, пока капча не пропадет)
Какие еще есть средства для мониторинга? Где можно поднять информацию? Что еще можно использовать?