Здравствуйте форумчане,
нужна ваша помощь, так как я новичок в этом, но очень хочу научиться и разобраться, есть разного рода ссылки на сайты, НАПРИМЕР: https://my.mail.ru/ да и в принципе для примера любой сайт подойдёт с наличием рекламы, тот же: https://vk.com на которых нужно собирать ссылки из рекламных баннеров.
Перечитал много разных тем и перепробовал много разных способов, на данном этапе по многим советам дошёл до selenium, учитывая разные попытки и ошибки накидал такой код, с использованием WebDriverWait и TimeoutException, и всё равно не могу получить желаемый результат.
Вот мой код на данный момент:
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.options import Options
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
user_agent = ‘Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3’
chrome_options = Options()
chrome_options.add_argument(f'user-agent={user_agent}')
driver = webdriver.Chrome(options=chrome_options)
driver.get('https://my.mail.ru/')
try:
element = WebDriverWait(driver, 30).until(EC.presence_of_element_located((By.XPATH, '//*/div//div/div/div/div/div/div/div/div/div/a/div/div/div/span')))
print(element.text)
except TimeoutException:
print(“Время ожидания истекло!”)
код выводит любой текст и заголовок по заданному XPATH, но ссылку из рекламного баннера ни в какую.
если я правильно понимаю, то проблема может быть в том, что с каждым новым открытием браузера и страницы, да и вообще за время присутствия на странице рекламные баннеры постоянно обновляются, и соответственно меняется XPATH, код не может поймать на странице тот XPATH, который я скопировал в коде страницы, потому что или его уже вообще не существует, или потому что в данный момент рекламный банер другой и соответственно другой XPATH. Может кто сталкивался с такими задачами или в принципе знает как с этим бороться? Может я зря использую selenium и есть какой то другой способ…Помогите…