Добрый день! Есть задачка: спарсить ссылки на всех продавцов на Ozon. (
https://www.ozon.ru/seller/)
Продавцы в этом разделе подгружаются при скролинге. Понятное как осуществить сбор ссылок, но не понятно как обойти их защиту, потому что при подключении селениума скролинг не осуществляется (первые 12 продавцов выдается и всё).
Скрытие режима вебдрайвер, ротация user агентов не помогает. При подключении seleniumwire для того чтобы использовать прокси с авторизацией вообще срабатывает защита от Cloudflare и выдает сразу капчу.
Что можно придумать, чтобы прокрутка страницы на Ozon используя селениум работала?
Прикладываю код, он у вас может не работать, потому что Ozon меняет классы, если поставить свежие классы то ссылки будут добываться, не в этом суть. Надо решить задачу с прокруткой, просто не подгружаются продавцы при прокрутке.
import selenium
from selenium import webdriver
from selenium.webdriver.common.by import By
import time
def get_data():
# options
options = webdriver.ChromeOptions()
# user-agent
options.add_argument("user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36")
# disable webdriver mode
# # for older ChromeDriver under version 79.0.3945.16
# options.add_experimental_option("excludeSwitches", ["enable-automation"])
# options.add_experimental_option("useAutomationExtension", False)
# for ChromeDriver version 79.0.3945.16 or over
options.add_argument("--disable-blink-features=AutomationControlled")
driver = webdriver.Chrome(options=options)
driver.get('https://www.ozon.ru/seller/')
time.sleep(2)
block = driver.find_element(By.CLASS_NAME, 'j2u')
card = block.find_elements(By.CLASS_NAME, 'j1q.p5j')
for lin in card:
link = lin.find_element(By.CLASS_NAME, 'jp6').find_element(By.CLASS_NAME, 'pj6').get_attribute('href')
print(link)
time.sleep(1)
#driver.execute_script("window.scrollTo(0, 100)")
if __name__ == '__main__':
get_data()