Scrappnig strony internetowej

Scrappnig strony internetowej
Mr Coin
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 72
0

Witam,
mam pytanie, robię scrappinig strony i np. podgląd na wynik mam taki

Kopiuj
print(driver.find_element(By.XPATH, f'//*[@id="root"]/div[1]/div[2]/form/div[5]/div/div[2]/div[2]/a/div/div/div[2]/div[1]/p').text)

jak uruchomiłem kod dostałem tekst ze strony, za chwilę jeszcze raz uruchomiłem bez żadnych zmian i dostałem

Kopiuj
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"xpath","selector":"//*[@id="root"]/div[1]/div[2]/form/div[5]/div/div[2]/div[2]/a/div/div/div[2]/div[1]/p"}

i już nie działa, to nie jedyna rzecz.. co chwile robię czyszczenie cash w Chrome. Włosy już z głowy sobie wyrywam i zaraz będę łysy ;). Czy może ktoś mi pomóc i wyjaśnić co to za cudo i co z tym zrobić? Bardzo dziękuję :D

ledi12
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
1

Możliwe, że element zmienia się jakoś dynamicznie ew coś jest renderowane przez js.

Ogólnie sposób w jaki szukasz elementów też jest słaby, bo taki selektory są totalnie nie stabilne. Nie musisz dochodzić do elementu po każdym elemencie kolejno.

Wystarczy coś takiego container/twoj element. Reszta to metoda prób i błędów czy też dostosowanie zagnieżdżeń.

Mr Coin
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 72
0
ledi12 napisał(a):

Możliwe, że element zmienia się jakoś dynamicznie ew coś jest renderowane przez js.

Ogólnie sposób w jaki szukasz elementów też jest słaby, bo taki selektory są totalnie nie stabilne. Nie musisz dochodzić do elementu po każdym elemencie kolejno.

Wystarczy coś takiego container/twoj element. Reszta to metoda prób i błędów czy też dostosowanie zagnieżdżeń.

Thx za pomoc :)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.