Whatsapp Web'in Aktif Olup Olmadığını Kontrol Etmek

Merhabalar.

webbrowser modülünü kullanarak https://web.whatsapp.com/'u açmayı, sonrasında ise sitenin yüklenip yüklenmediğini konrol etmek istiyorum.

Mesela şöyle bir şey düşünüyorum:

import webbrowser

LINK = "https://web.whatsapp.com/"
webbrowser.open(LINK)
if is_page_loaded(LINK):
  print("The page has been loaded")

Site browser’ımda açıldığında aktifse bir şeyler print edilecek.


“Aktif” derken neyi kastettiğimden bahsedeyim: Whatsapp web’i açtığınızda eğer telefonunuz whatsapp web ile senkronize değilse ya da telefonun WIFI’yı kapalıysa site pasif, senkronizeyse ve WIFI açıksa aktif demek oluyor.


Whatsapp web’in aktif ya da pasif olduğunu nasıl anlarım ?

1 Beğeni

Selenium kullanmadan anlayamazsın diye düşünüyorum. Çünkü web WhatsApp qr kod okutmasan bile status codu 200 dönüyo. Yani açık zaten ama senin WhatsApp ın açık olduğunu seleniumsuz anlaşılmaz gibi geliyor bana.

1 Beğeni

Bunu webbrowser modülü ile yapmak mümkün değil. Webbrowser, subprocess.Popen kullanarak tarayıcıları çalıştıran bir modül sadece.

1 Beğeni

Router üzerinden gelen mesajı yakalarsan yapabilirsin ama python’da nasıl yapılıyor hiçbir fikrim yok.
@BandoLero dediği doğru yüksek ihtimalle. Benim aklıma başka bir şey gelmiyor.

1 Beğeni

Ssl den mütevellit nasıl bir mesaj gelmesini bekliyorsun?

Sunucu ile Bilgisayar arası gelen verinin tamamlanması sağlanıyor en sonda. O veriyi yakalamanın bir yolu varsa eğer yapılabilir. C ile yazılmış bir dil olduğu için söyledim. Beyin fırtınası yapıyoz :smiley:

O kadar uzun yollara ihtiyac yok. Basitce Selenium kullanarak whatsapp web yuklenmesi tamamlandiginda ekranda beliren bir elementin varligi kontrol edilebilir. En kotu ihtimal (yapilabiliyor mu bilmiyorum ama) bir input fokus moduna gectiginde selenium bunu tespit edebiliyorsa o sekilde de olur.

1 Beğeni

Hep böle oluyo biri konu açıp gidiyo sonra millet birbirine giriyo xd

Ssl den dolayı yakalanmaz yakalasan bile okuyamazsın. Python lada yapılır scapy kullanmışsındır belki :smiley:

Yapalım tabi hiç sorun değil

Ne konuştuk. Neyse biraz araştırdım.

from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.common.exceptions import TimeoutException

browser = webdriver.Firefox()
browser.get("url")
delay = 3 # saniye
try:
    myElem = WebDriverWait(browser, delay).until(EC.presence_of_element_located((By.ID, 'IdOfMyElement')))
    print "Sayfa Hazırr!"
except TimeoutException:
    print "Aga uzun sürüyor biz napalım"

Böyle yapılıyormuş :face_with_hand_over_mouth: :exploding_head:

Gittiğimi de kim söylemiş ? Sorun, sorunu Forum’da paylaşmamdan üç (?) gün öncesinden beri vardı ve o zamandan beri çözmeye çalışıyorum. Konu içerisinde herhangi bir aktivite yapmamış olmam gittiğim anlamına gelmez.


Firefox kullanıyorum, çalıştırdığımda Geckodriver hatası verdi. Geckodriver’ı kurup denediğimde gerçekten de whatsapp web’i açtı fakat QR kod istiyordu. Okuttum, browser’ı kapatıp kodları tekrar çalıştırdım ve browser tekrar açıldığında yine QR kod istiyordu. Sonrası sonsuz döngü :smiley:
İşte tam da bu gibi sebeplerden dolayı Selenium’a en baştan bulaşmak istemedim fakat bir sürü yol deneyip sorunu olduramayınca Selenium’a kaldım :confused:

Selenium alternatifi arayıp requests ve beautifulsoup kullandım fakat iğrenç bir şey keşfettim: Whatsapp-Web hazretleri requestlere cevap vermiyormuş, redirect hatası yükseliyor her seferinde.

2 Beğeni
options.addArguments("--incognito"); 

Bunu buldum deneyebilir misin?

1 Beğeni

İnternette bunu arattığım zaman Selenium ile ilgili şeyler gördüm.

Açıkçası Selenium çözüm olsa bile onu kullanmak istemiyorum çünkü açabildiği sayılı browser var ve bu çok can sıkıcı.

1 Beğeni

Seleniumsuz yapan yok. Google’da baya kapsamlı bir arama yaptım ama hepsi de selenium kullanıyor.

çekmesi gerekiyor her saniye. Çünkü hep bir işlem halinde oluyor web sitesi. Senin yapacağın işlemi fark ettiren herhangi bir event olayı yok galiba(Aklıma Enter’a basınca event çalıştırsın mantığı falan geldi. döngüyü durduruyoruz enter’a basınca 2 saniye çalışıyor sonra yine kapanıyor). Ondan dolayı delaylamak zorunda kalıyoruz ve döngüye sokuyoruz. :frowning:

Araştırdığım kadarıyla bunları bulabildim. Size iyi çalışmalar. :exploding_head:

1 Beğeni