Пишу парсер для сайта, данные которые должны парситься все время обновляются, и столкнулся с такой проблемой, что выводит не верные данные, а именно:
https://imgur.com/a/iOQ5lNl - должно вывести(снизу вверх), а выводит
https://imgur.com/a/6y0KvIv. Цвет определяю по классу дочернего элемента. А вывод новых игр по хешу игры. Сделал чтобы выводило 3ю игру.
from selenium import webdriver
import time
import csv
driver = webdriver.Chrome()
driver.get("https://rublix.best/")
time.sleep(45)
wheel = driver.find_element_by_xpath("/html/body/div[1]/div[1]/nav/ul[1]/li[2]/a").click()
hash_game = 0
a = 1
''' Выводит каждую третью игру то есть 0 - грин, 1- ред, 2- грей.
Выведет грей, на следующей игре ред и тг '''
while True:
last_game = driver.find_element_by_xpath('//*[@id="doubleGame"]/div[1]/div[3]/div/div[3]/div').get_attribute('class')
color = 0
named_tuple = time.localtime() # получить struct_time.
time_string = time.strftime("Время: %H:%M:%S", named_tuple)
h = driver.find_element_by_xpath('//*[@id="doubleGame"]/div[1]/div[3]/div/div[3]/div/div/span[1]/p') # путь до хеша последней игры
if hash_game != h:
hash_game = h
if last_game == 'lggr':
color = 'GREEN'
elif last_game == 'lgg':
color = 'GREY'
elif last_game == 'lgb':
color = 'BLUE'
elif last_game == 'lgr':
color = 'RED'
t = [str(a), 'game', '{}'.format(color), '{}'.format(time_string)]
print(t)
a += 1
myFile = open('doubleGame.csv', 'a', newline='')
with myFile:
writer = csv.writer(myFile, delimiter=';') # Записывает в myFile с разделителем ';' для перехода в след. ячейку.
writer.writerows([t]) # Записывает список списка переменной t, иначе через каждый символ будет запятая.
time.sleep(3)