Я пытаюсь получить все ссылки на сообщения в учетной записи Instagram. Структура немного вложенная: сначала я нахожу класс по X_Path, где расположены все эти ссылки, а затем перебираю web_elements (posts) для извлечения ссылок. Однако при таком подходе выбрасывается ссылка на устаревший элемент.
У меня такой вопрос: как мне спроектировать oop с реализацией WebDriverWait с By.CSS_Selector для извлечения ссылок и сохранения их в одном списке?
Я прочитал и попытался реализовать WebDriverWait, но я застрял, делая это правильно, так как все попытки, похоже, не работают.
Я искал вопросы и нашел две ссылки, которые были очень полезны, однако ни одна из них не имела дела с By.CSS_SELECTOR для извлечения a href
.
Это ссылки: StaleElementException при итерации с Python
Мой текущий код, который идет бесконечно l oop:
def getting_comment(instagram_page, xpath_to_links, xpath_to_comments ):
global allComments
links = []
scheight = .1
posts = []
browser= webdriver.Chrome('/Users/marialavrovskaa/desktop/chromedriver')
browser.get(f"{instagram_page}")
while scheight < 9.9:
browser.execute_script("window.scrollTo(0, document.body.scrollHeight/%s);" % scheight)
scheight += .01
posts = browser.find_elements_by_xpath(f"//div[@class='{xpath_to_links}']")
for elem in posts:
while True:
try:
WebDriverWait(elem, 20).until(EC.presence_of_all_elements_located((By.CSS_SELECTOR, ".a")))
links.append(elem.find_element_by_css_selector('a').get_attribute('href'))
except TimeoutException:
break
instagram_page = https://www.instagram.com/titovby/?hl=ru
xpath_to_links = v1Nh3 kIKUG _bz0w