Задать вопрос
kiselev-webmaster
@kiselev-webmaster

Как сделать обход по всем ссылкам на Python + Selenium?

Приветствую. Есть задача зайти на сайт и пройтись по всем ссылкам на странице, написал скрипт, но происходит переход только по первой ссылке. в чем может быть ошибка?
from selenium import webdriver
import requests
from bs4 import BeautifulSoup as bs
import time


driver = webdriver.Chrome('./chromedriver')
driver.get('https://lenta-stories.ru')

pages = driver.find_elements_by_css_selector('.new-posts .post-item a')
for item_post in pages:
    url = item_post.get_attribute('href')
    driver.get(url)

#driver.close()


ошибка:
File "/Users/denis/Documents/Pyton/lenta/test.py", line 12, in <module>
    url = item_post.get_attribute('href')
  • Вопрос задан
  • 477 просмотров
Подписаться 1 Средний Комментировать
Решения вопроса 1
ScriptKiddo
@ScriptKiddo
При переходе на новую страницу значения для элементов прошлой страницы уже не получить.
Поэтому, получайте все URL сразу, до начала обхода

elements = driver.find_elements_by_css_selector('.new-posts .post-item a')
page_urls = [element.get_attribute('href') for element in elements]

for url in page_urls:
    driver.get(url)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы