Selenium Python не отображает динамические данные – есть ли скрытый код антиавтоматизации?Python

Программы на Python
Ответить
Anonymous
 Selenium Python не отображает динамические данные – есть ли скрытый код антиавтоматизации?

Сообщение Anonymous »

Вот мой код:

Код: Выделить всё

import time
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

# Set up ChromeDriver service
service = Service(r"C:\Users\Rob\Downloads\chromedriver-win64\chromedriver-win64\chromedriver.exe")  # Update path to ChromeDriver

# Set up Chrome options
chrome_options = Options()
chrome_options.add_argument("--start-maximized")  # Start browser maximized
chrome_options.add_argument("--disable-blink-features=AutomationControlled")  # Helps bypass bot detection
chrome_options.add_argument("--disable-infobars")  # Removes Chrome's automation banner

# Initialize WebDriver for Chrome
driver = webdriver.Chrome(service=service, options=chrome_options)

try:
# Open the specified URL
driver.get("https://www.britishairways.com/travel/book/public/en_gb/flightList?onds=LON-NYC_2025-04-01,NYC-LON_2025-04-10&ad=1&yad=0&ch=0&inf=0&cabin=M&flex=LOWEST&ond=1")

# Wait for the cookie consent button and click it
try:
cookie_button = WebDriverWait(driver, 15).until(
EC.element_to_be_clickable((By.ID, "ensAcceptAll"))
)
cookie_button.click()
print("Cookie consent accepted.")
except Exception as e:
print("Cookie consent button not found or not clickable:", e)

# Optional: Add a delay to observe the page in the browser
time.sleep(60)

finally:
# Close the browser
driver.quit()
Я использую Selenium для загрузки цен на авиабилеты и вариантов для определенного маршрута через

https://www. britishairways.com/nx/b/en/gb/

У меня нет доступа к API инструментов разработчика IAG, поэтому я пытаюсь использовать веб-интерфейс -Проверка программы Selenium/Python для достижения тот же результат.
Веб-страница, которую я хочу смоделировать с помощью Selenium, выглядит следующим образом:

https://www.britishairways.com/travel/b ... nf=0&cabin =M&flex=LOWEST&ond=1

Вышеупомянутый URL-адрес («Целевой URL») – это URL-адрес, на который я перенаправляюсь, когда посещаю главную страницу бронирования через
https://www.britishairways.com/nx/b/en/gb/

где я ввожу обратный путь из Лондон – Нью-Йорк с 1 апреля 2025 г. по 10 апреля. 2025 г., эконом-класс для одного взрослого.
Когда я посещаю целевой URL-адрес и использую инструменты разработчика в Chrome для определения запросов Fetch/XHR на вкладке «Сеть», я обнаружил указанный ниже URL-адрес. как запрос POST, который предоставляет информацию о рейсе (цены и время), который я ищу. Это будет информация, которую я хочу загрузить через свою программу после того, как веб-страница будет обработана с помощью Selenium.

Код: Выделить всё

https://www.britishairways.com/api/sc4/badotcomadapter-paatwo/rs/v1/flightavailability/search;ondwanted=1?metasearchdata=LON_NYC_2025-04-01&metasearchdata=NYC_LON_2025-04-10&locale=en_GB
Однако, когда я создаю простую программу с использованием Selenium Python для доступа к целевому URL-адресу, веб-сайт просто никогда не загружается. Всплывает уведомление о файлах cookie, которое я «принимаю» через Selenium, но динамический контент, похоже, не загружается. Когда я использую инструменты разработчика на открытой веб-странице (я не использую автономный режим, чтобы упростить отладку), я не вижу приведенный выше URL-запрос POST, который я ожидал увидеть.
Изображение

Почему это не работает? Возможно, в веб-сайт встроен какой-то код предотвращения автоматизации, который определяет, что я захожу через Selenium, и запрещает загрузку динамических данных?
Я даже пробовал просто загружать следующий URL-адрес с использованием Selenium, который отображается нормально:

https://www.britishairways.com/nx/b/en/gb/

А затем ввел нужные мне параметры поиска (обратный рейс из Лондона в Нью-Йорк с 1 апреля 2025 г. по 10 апреля 2025 г., в эконом-классе для одного взрослого). Однако проблема остается той же (поскольку я, по сути, перехожу к тому же целевому URL-адресу, который не отображается).
Буду очень признателен за любую помощь.
РЕДАКТИРОВАТЬ: Если это полезно, вот вывод на моей консоли Python. Я оставляю веб-страницу открытой на достаточное время для загрузки, но она все равно не загружается.

DevTools прослушивает ws://127.0.0.1 :56232/devtools/browser/b219c155-3fa3-464e-9ed3-ba1330ad5f76
Согласие на использование файлов cookie принято.
Создан делегат TensorFlow Lite XNNPACK для ЦП.


Подробнее здесь: https://stackoverflow.com/questions/793 ... tomation-c
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»