Wpis z mikrobloga

Mam pytanie odnosnie #programowanie tylko prosze nie zjedzcie mnie. Jestem totalnym amatorem i dla zabawy postanowilem sprobowac napisac bota w selenium.

Nie moge ogarnac w jaki sposob umiescic petle for w definicji (jesli to w ogole mozliwe). Ponizej kod, nie wklejalem na githuba bo nie mam jeszcze konta. Chcialbym aby petla wykonywala sie dla akcji - daj like, follow, przewin kolejne zdjecie.
Przykladowo 3 razy.

def likes():
browser.get('https://www.instagram.com/explore/tags/newyork/') #hasztag
browser.findelementbyxpath('/html/body/div[1]/section/main/article/div[2]/div/div[1]/div[1]/a/div').click() #wybiera zdjecie
browser.find
elementbyxpath('/html/body/div[5]/div[2]/div/article/div[3]/section[1]/span[1]/button').click() #serduszko
browser.findelementbyxpath('/html/body/div[5]/div[2]/div/article/header/div[2]/div[1]/div[2]/button').click() #follow
browser.find
elementbyxpath('/html/body/div[5]/div[1]/div/div/a[2]').click() #przewin nastepne zdjecie

moze jakis #programista15k pomoze.
  • 4
  • Odpowiedz
  • 1
@MlodyWilk: Dzięki! Tez w ten sposób próbowałem zrobić pętle ale nie działało. Dodałem po każdej akcji 5 sekund przerwy i śmiga! Udanego wieczoru miras
  • Odpowiedz
@kwiato: Popracuj nad tym wiecej. Jak chcesz pisac scrapery, to bedziesz tego trzaskal dziesiatki dziennie.

Tak jak @MlodyWilk tylko z wieksza emfaza - kazdy wybor xpath dawaj w try-catch, bo wywala exceptions w razie braku znalezienia odpowiednich wezlow.

Zamiast uzywania petli for, jesli chodzi Ci o przewijanie kontentu w przegladarce, to lepiej zbudowac sobie jakis obiekt typu "batch" DTO, ktory modeluje to, co najczesciej mozesz zastanac na danej stronie / podstonie.
  • Odpowiedz