Konuyu Oyla:
  • Toplam: 0 Oy - Ortalama: 0
  • 1
  • 2
  • 3
  • 4
  • 5
[YENİ] PYTHON TRY-EXPECT VE WHİLE SORUNU !
#1
kaynak = browser.page_source
soup = BeautifulSoup(kaynak, "html.parser")

list =["deneme","discord"]

a = 1

while a == a:
   time.sleep(5)
   try:
       onaytest = soup.find("h4", {"class" : "message-title"}).find("a").get_text()
       for test in list:
         angara = onaytest.find(test)
         if angara < 0:
           browser.find_element(By.XPATH, ("/html/body/div[2]/div[3]/div/div[3]/div[4]/div[2]/form/div/div[1]/div/div/div/div/div[3]/div/ul/li[2]/label/i")).click() #sil
           time.sleep(1.5)
           pyautogui.press('enter')
           time.sleep(1.5)
           print('CHECK : ONAYLA ')
           time.sleep(1.5)
         else:
           browser.find_element(By.XPATH, ("/html/body/div[2]/div[3]/div/div[3]/div[4]/div[2]/form/div/div[1]/div/div/div/div/div[3]/div/ul/li[3]/label/i")).click() #ONAYLA
           time.sleep(1.5)
           pyautogui.press('enter')
           time.sleep(1.5)
           print('CHECK : SİL ')
           time.sleep(1.5)
   except:      
     print('CHECK : ONAYLANICAK KONU YOK')
     browser.refresh()


sistem şöyle çalışıyor başlık çekiyor onaytesin içine atıyorum sonra çektiğim mesajın içinde "list" i aratıyorum çektiğim mesajla benim verdiğim kelimeler uyuşuıyormu diye kontrol ettiriyorum, sorun şurda başlıyor TRY-EXPECT olmadan bu kod çalışıyor fakat bazen veri çekemediği oluyor o zamanda kapanıyor ben kapanmasını önlemek için TRY-EXCEPT kullandım şimdi yardımcı olup denemek istiyen olursa diye kod böyle çalışıyor evet hata vermiyor fakat yanlış çalışıyor yani SİL yapıcağına ONAYLA yapıyor ya kod doğru satırların boşluklarında bir sıkıntı var yada başka bişey 1-2 kişiye sordum bana şöyle bir kod verdiler
banned_words = ["deneme","discord"]


try:
 isValid = True
 all_texts = ["ss","ss", "cc"]
 
 for banned_word in banned_words:
   if(banned_word in all_texts):
     isValid = False
     break
 
 if isValid:
   print("Valid content")
 else:
   print("Invalid content")

except:
 print("Hata")

evet buda çalışıyor fakat ben bunuda sonsuz bir döngüye alamıyorum , kodu verene yazdığımda napıcaksın sonsuz döngüyü diyor ya ,  bende kaldım arada yardımlarınız için teşekkürler
Ara
Cevapla
#2
Şimdi öncelikle şunları söylemekte fayda olduğunu düşünüyorum, eğer soup.find() yaptıktan sonra gelen değer none ise sonrasında yapacağınız .find("a") ve .get_text() metotları hata döndürür. Bu yüzden metotları arka arkaya eklemeden önce gelen veri var mı diye kontrol ederseniz try-except kullanmaya gerek kalmaz. Ne de olsa try-except öngürülemeyen hatalar için kullanılan bir istisna yönetimi ne de olsa.

İkinci olarak da eğer try-except kullanmak gerekiyorsa except bloğunda 

except Exception as error:
   print(error)

şeklinde hatayı görmekte fayda var.

Gözüme çarpan diğer bir husus da browser.refresh() satırı, tarayıcı yenileme ihtiyacı duyuyorsanız her döngüde bunu except bloğu ile sınırlandırmak istemezsiniz. Bunun yanında soup = BeautifulSoup(kaynak, "html.parser") döngünün dışında kaldığı için sayfa yenilense bile hala kodun ilk çalıştığı andaki kaynağı baz alınacaktır, dolayısıyla soup değişkenini yine while döngüsünün içinde yenilerseniz (kaynak = browser.page_source de dahil edilerek) belki sorunlarınız çözülür. 

Tabi bütün bunları sayfa yapısını vs görmeden sizin yazdığınız kod üzerinden söylüyorum, bilmediğim farklı durumlar varsa tabi yanılabilirim. Ama gözlemlerim bu şekilde.
Turbobit Premium Link Çeviri | Turbobit Link Generator | http://turbobit.qpython.club
Cevapla
#3
(03-04-2022, Saat: 15:17)gecemor Nickli Kullanıcıdan Alıntı:  Şimdi öncelikle şunları söylemekte fayda olduğunu düşünüyorum, eğer soup.find() yaptıktan sonra gelen değer none ise sonrasında yapacağınız .find("a") ve .get_text() metotları hata döndürür. Bu yüzden metotları arka arkaya eklemeden önce gelen veri var mı diye kontrol ederseniz try-except kullanmaya gerek kalmaz. Ne de olsa try-except öngürülemeyen hatalar için kullanılan bir istisna yönetimi ne de olsa.

İkinci olarak da eğer try-except kullanmak gerekiyorsa except bloğunda 

except Exception as error:
   print(error)

şeklinde hatayı görmekte fayda var.

Gözüme çarpan diğer bir husus da browser.refresh() satırı, tarayıcı yenileme ihtiyacı duyuyorsanız her döngüde bunu except bloğu ile sınırlandırmak istemezsiniz. Bunun yanında soup = BeautifulSoup(kaynak, "html.parser") döngünün dışında kaldığı için sayfa yenilense bile hala kodun ilk çalıştığı andaki kaynağı baz alınacaktır, dolayısıyla soup değişkenini yine while döngüsünün içinde yenilerseniz (kaynak = browser.page_source de dahil edilerek) belki sorunlarınız çözülür. 

Tabi bütün bunları sayfa yapısını vs görmeden sizin yazdığınız kod üzerinden söylüyorum, bilmediğim farklı durumlar varsa tabi yanılabilirim. Ama gözlemlerim bu şekilde.

öncelikle ilginiz için çok teşekkür ederim söylediklerinizden yola çıkara yaptığım değişikler sonucunda kodum sorunsuz çalışıyor çok teşekkür ederim sizlere , son bir ricam olucak bu mesajı gördükten sonra komple konuyu silermisiniz
Ara
Cevapla
#4
(03-04-2022, Saat: 20:32)$cr!pt HUB Nickli Kullanıcıdan Alıntı:  
(03-04-2022, Saat: 15:17)gecemor Nickli Kullanıcıdan Alıntı:  Şimdi öncelikle şunları söylemekte fayda olduğunu düşünüyorum, eğer soup.find() yaptıktan sonra gelen değer none ise sonrasında yapacağınız .find("a") ve .get_text() metotları hata döndürür. Bu yüzden metotları arka arkaya eklemeden önce gelen veri var mı diye kontrol ederseniz try-except kullanmaya gerek kalmaz. Ne de olsa try-except öngürülemeyen hatalar için kullanılan bir istisna yönetimi ne de olsa.

İkinci olarak da eğer try-except kullanmak gerekiyorsa except bloğunda 

except Exception as error:
   print(error)

şeklinde hatayı görmekte fayda var.

Gözüme çarpan diğer bir husus da browser.refresh() satırı, tarayıcı yenileme ihtiyacı duyuyorsanız her döngüde bunu except bloğu ile sınırlandırmak istemezsiniz. Bunun yanında soup = BeautifulSoup(kaynak, "html.parser") döngünün dışında kaldığı için sayfa yenilense bile hala kodun ilk çalıştığı andaki kaynağı baz alınacaktır, dolayısıyla soup değişkenini yine while döngüsünün içinde yenilerseniz (kaynak = browser.page_source de dahil edilerek) belki sorunlarınız çözülür. 

Tabi bütün bunları sayfa yapısını vs görmeden sizin yazdığınız kod üzerinden söylüyorum, bilmediğim farklı durumlar varsa tabi yanılabilirim. Ama gözlemlerim bu şekilde.

öncelikle ilginiz için çok teşekkür ederim söylediklerinizden yola çıkara yaptığım değişikler sonucunda kodum sorunsuz çalışıyor çok teşekkür ederim sizlere , son bir ricam olucak bu mesajı gördükten sonra komple konuyu silermisiniz

Şunu belirtmeliyim ki burası herkese açık bir forum ve burada bir post gönderdiğinizde ziyaret edebilecek herkes tarafından görünebileceğini kabul etmişsiniz demektir. O yüzden eğer kimse tarafından okunmasını istemediğiniz kodlarınız veya postlarınız varsa lütfen göndermeyiniz, bu konuda sorumluluk size aittir.
Cevapla

{lang: 'en'}


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  15gb .myd uzantılı dosya python ile okutma perry 1 971 27-11-2022, Saat: 17:59
Son Yorum: perry
Question Python Dili Soru & Cevap gecemor 1,493 1,043,117 08-11-2022, Saat: 11:18
Son Yorum: Antonyobanderas
  GÜNCEL Python request , c# request e göre çok yavaş ne yapabilirim perry 12 2,522 28-09-2022, Saat: 20:27
Son Yorum: krast
  YENİ Python Pyqt5 memory leak sorunu perry 3 1,030 28-09-2022, Saat: 11:33
Son Yorum: gecemor
  Pyinstaller exe virüs sorunu ahgonlum 4 2,338 16-09-2022, Saat: 17:36
Son Yorum: ahgonlum

Hızlı Menü:


Konuyu Okuyanlar: 1 Ziyaretçi
Change Theme