Selenium + Webdriver возвращает ту же информацию, что и первый раз после повторного получения - PullRequest
0 голосов
/ 03 января 2019

Повторные вызовы по одному и тому же URL с использованием Python Selenium и веб-драйвера (geckodriver или Chrome driver) возвращают правильную информацию при первом запуске программы.Но каждый последующий запуск выполняется даже после 60-секундного ожидания, и даже перезагрузка по-прежнему возвращает информацию с первого URL-адреса get.

Ниже приведен код для запуска программы, которая ежеминутно проверяет шансы на трассе.,Сон в коде меньше для целей тестирования.

import time
import os
from selenium import webdriver

#url = "https://www.drf.com/live_odds/winodds/track/DED/USA/3/D"
#url = "https://www.drf.com/live_odds/winodds/track/TAM/USA/10/D"
#url = "https://www.drf.com/live_odds/winodds/track/AUS-MNG/AUS/5/D"
#url = "https://www.drf.com/live_odds/winodds/track/AUS-AUC/AUS/2/D"
url = "https://www.drf.com/live_odds/winodds/track/SA/USA/5/D"
driver = webdriver.Chrome()
driver.get(url)
driver.refresh()
time.sleep(50)
#url = "https://www.drf.com/live_odds/winodds/track/AQU/USA/7/D"
#url = "https://www.drf.com/live_odds/winodds/track/LA/USA/4/D"

driver.close()
driver.quit()

#os.system(killall "Chrome")

Сначала я подумал, что проблема была в моих запросах, поэтому я перешел на Selenium и geckodriver, а затем на Chrome Driver.Тогда это сработало.При первом получении URL вернулась правильная информация.Во второй раз, когда я использовал тот же URL-адрес и выполнил получение, шансы со временем изменится - я все же получил результаты с первого получения URL-адреса.Даже когда я снова запускаю программу, я получаю те же результаты, что и первый URL-адрес получения.Но если я запускаю Chrome без Selenium и перехожу на тот же URL, я получаю правильные обновленные коэффициенты.Также в Chrome без Selenium шансы отображаются горизонтально на странице, а шансы отображаются в столбце, когда я запускаю Selenium и драйвер Chrome.Я знаю, что часто возникают проблемы с совместимостью, но я загружал Selenium и драйверы в течение последних двух или трех недель.

Эта программа будет далека от точной, если вы запустите ее, когда SA - Santa Anita Racetrack не запущена ив этом коде это будет гонка номер 5. Вы можете легко изменить номер гонки, соответствующий текущей гонке.И вы можете изменить трек, зайдя на www.drf.com, а затем перейдя к записям и щелкнув по Live Odds.Там вы увидите список треков, и вы можете нажать на один и там вы увидите соответствующий URL.Вставьте это в программу и назначьте в качестве нового URL.Снова вы увидите, что возвращенный экран правильный, но вы можете запускать программу снова и снова, и вы получите только результаты, полученные на первом экране.Вы не получите новые шансы, которые получите, если будете запускать Chrome без Selenium.Есть ли какие-то ссылки в буфере или веб-сайт пытается запретить постоянную проверку шансов в Интернете.Я также попытался перезагрузиться, но все еще получил старые результаты из URL при повторном запуске Selenium и Chrome Driver.

Снова, если я запускаю только Chrome, я получаю новые обновления.Может ли это означать, что есть некоторая ссылка на исходный запрос, который должен быть сохранен на диске, так как все ссылки в памяти будут удалены при перезагрузке?Может ли это включать ссылку на сокет?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...