Парсинг сайта строительных материалов Леруа Мерлен

Тема в разделе "Готовые проекты от энтузиастов", создана пользователем Achronis, 7 авг 2020.

  1. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Есть вариант вставки Кук из Firefox, но этого хватает на запросов 200, потом опять куки вставлять.

    В общем, заморочились они с этим.

    Есть вероятность (50/50), что через пару недель примут решение вернуть обратно, так как есть проблемы в их защите и с другими браузерами (в них тоже сайт не работает). Озон тоже ужесточал защиту, сейчас вернул обратно.
     
  2. gusd

    gusd New Member Пользователи

    Регистрация:
    19 апр 2023
    Сообщения:
    2
    Здравствуйте, не подскажете как то удалось получить эти три заветных токена?
     
  3. gusd

    gusd New Member Пользователи

    Регистрация:
    19 апр 2023
    Сообщения:
    2
    В действительности достаточно для парсинга получить qrator_jsid, как получить его перед запросом пока так и не понял
     
  4. Alexey2703

    Alexey2703 New Member Пользователи

    Регистрация:
    16 июн 2023
    Сообщения:
    2
    Город:
    Комсомольск-на-Амуре
    Удалось извлечь автоматически qrator_jsid:

    1. Способ:
    Из профиля после бразера после, единоразового запуска неавтоматизориванного chrome браузера. После старта браузера на странице леруа, он сохраняет куки в том числе qrator_jsid. С помощью библиотеки
    Ссылки недоступны для гостей расшифровываем cookies извлекаем наши (удалось запустить только под windows).
    2. Способ:
    Извлекаем куки с помощью selenium, применяя приемы скрытия автоматизации (удалось запустить только под windows).

    Под линук (kali linux) этот способ не сработал.
    Т.к. chromium неавтоматизорованный не пропускает трафик:

    выдает:
    Сайт может не работать с VPN

    Хотя под неавтоматизированым firefox отдает содержимое сайта.

    Пока не разобрался в чем причина. Если кто найдет, буду признателен подсказке.

    В целом можно парсить через selenium под windows все работает.

    Но под linux не удалось пока запустить, хотелось бы запихнуть все в docker контейнер под linux.

    параметры настройки браузера chrome для обхода обнаружения автоматизации под windows:

    chrome_driver_path = 'C:\PycharmProjects\Price-monitoring-project\chromedriver.exe'

    service = Service(chrome_driver_path)
    # service = Service(Service(ChromeDriverManager().install())) - не работает

    options = webdriver.ChromeOptions()

    # options.add_argument('--headless') # - C headless не работает
    options.add_argument('--disable-blink-features=AutomationControlled') # первое !!!

    #
    # options.add_experimental_option('excludeSwitches', ['enable-automation']) # дополнительно
    # options.add_experimental_option('useAutomationExtension', False) # дополнительно
    #

    driver = webdriver.Chrome(service=service, options=options)

    driver.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", { # второе !!!
    'source': '''
    delete window.cdc_adoQpoasnfa76pfcZLmcfl_Array;
    delete window.cdc_adoQpoasnfa76pfcZLmcfl_Promise;
    delete window.cdc_adoQpoasnfa76pfcZLmcfl_Symbol;
    '''
    })

    driver.maximize_window()

    driver.get(url)
     
    HustleDev нравится это.
  5. Alexey2703

    Alexey2703 New Member Пользователи

    Регистрация:
    16 июн 2023
    Сообщения:
    2
    Город:
    Комсомольск-на-Амуре
    И да, если парсить без selenium, придется поддерживать продукт, ибо они переодически меняют headers и cookies. Вот недавно добавили новый заголовок и код на session.get() перестал работать.
     
    HustleDev нравится это.

Поделиться этой страницей