Hangi siteden mesaj okumayı denediğini bilmiyorum ki.
Hangi siteden mesaj okumayı denediğini bilmiyorum ki.
Hangi siteden mesaj okumayı denediğini bilmiyorum ki.
Merhaba cevap verebilir misiniz aktifseniz ?Hangi siteden mesaj okumayı denediğini bilmiyorum ki.
Hangi siteden mesaj okumayı denediğini bilmiyorum ki.
Yani spesifik olarak bu kafandaki şeyi nasıl yapacağının bir kaynağı varsa ben bilmiyorum.Tamamdır hocam ne yazık ki veremiyorum siteyi yine de desteğiniz için teşekkür ederim.
Yani isim vermeden yapılabilecek bir şey yok mu acaba?
Kusura bakma tekrar rahatsız ettim ama bunları öğrenebileceğim bir kaynak var mı acaba? Bu sistemi nasıl yapabileceğim hakkında falan?
from selenium import webdriver
from selenium.webdriver.common.by import By
import time
class Repsonses:
def __init__(self, file_name: str) -> None:
self.responseList = {}
with open(file_name, "r") as responses:
for line in responses:
temp = line.split(";")
if len(temp) > 2:
raise Exception("format is: \"message|alternativemessage;response\"")
message, response = temp
if message.find("|") != -1:
messages = message.split("|")
for m in messages:
self.responseList[m] = response
else:
self.responseList[message] = response
def getResponse(self, message: str):
keyList = list(self.responseList.keys())
for key in keyList:
if message.find(key) != -1:
return self.responseList[key]
return -1
response_list = Repsonses("cevaplar.txt")
driver = webdriver.Chrome()
driver.get("http://localhost:5500/index.html") # Buraya siteyi yazıyorsun.
time.sleep(1.5)
def handleResponse():
last_message = driver.find_elements(By.CSS_SELECTOR, "div.chat-box p.message")
if len(last_message) == 0:
return
response = response_list.getResponse(last_message[-1].text.lower())
if response == -1:
return
inputbox = driver.find_element(By.ID, "sendtext")
inputbox.send_keys(response)
handleResponse()
input()
mesaj;yanıt
merhaba;Merhabalar hoş geldiniz
nasılsın|napıyorsun|naber|napıyosun;İyiyim siz nasılsınız?
Yani spesifik olarak bu kafandaki şeyi nasıl yapacağının bir kaynağı varsa ben bilmiyorum.
Selenium ile yapacağın şey, mesajın geldiği bloğu okumak, okuduğunda da mesajın, dosyada okuduğun stringlerde var mı kontrol etmek.
Mesela, diyelim X sitesinde mesajlar, div. Chat-box içerisinde p. Message olarak geliyor olsunlar. Dediğim şeyi yapan dandirikten bir site de yazdım ki örnek gösterebileyim.
Login yapıldığını varsayıyorum bu örneği atarken ama dikkat et sende login gerekecek. Bu login işini kendin halledersin. Benzeri mantıkla yapacaksın zaten.
Kodlara açıklama yazmaya üşendim. Oku anlamadığın yeri neden öyle yaptığımı sor. Handle response loopta olmalı tabii ki. Onları falan halledersin. Halledemiyorsan, ama programlama öğrenmekle uğraşmak istemiyorsan, AI'da bu kadar basit bir şey için yardım eder.
Python:from selenium import webdriver. from selenium.webdriver.common.by import By. import time. class Repsonses: def __init__(self, file_name: str) -> None: self.responseList = {} with open(file_name, "r") as responses: for line in responses: temp = line.split(";") if len(temp) > 2: raise Exception("format is: \"message|alternativemessage;response\"") message, response = temp. if message.find("|") != -1: messages = message.split("|") for m in messages: self.responseList[m] = response. else: self.responseList[message] = response. def getResponse(self, message: str): keyList = list(self.responseList.keys()) for key in keyList: if message.find(key) != -1: return self.responseList[key] return -1 response_list = Repsonses("cevaplar.txt") driver = webdriver.Chrome() driver.get("http://localhost:5500/index.html") # Buraya siteyi yazıyorsun. time.sleep(1.5) def handleResponse(): last_message = driver.find_elements(By.CSS_SELECTOR, "div.chat-box p.message") if len(last_message) == 0: return. response = response_list.getResponse(last_message[-1].text.lower()) if response == -1: return. inputbox = driver.find_element(By.ID, "sendtext") inputbox.send_keys(response) handleResponse() input()
Bu da cevaplar.txt'nin içeriği;
Kod:mesaj;yanıt merhaba;Merhabalar hoş geldiniz. nasılsın|napıyorsun|naber|napıyosun;İyiyim siz nasılsınız?
Dipnot: Chrome driver için güncel site buymuş; Chrome for Testing availability. Eski siteyi atmışım.
username=driver.find_element(By.NAME,"Username")
Bak şimdi, By.NAME dediğinde, HTML tagleri içerisinde ki attributelarda, name attribute'u için de "Username" varsa getirecek. username girdiğin kutuya sağ tıkla, incele de, sonra da bak ne name vermişler. Onu yaz.Çok teşekkür ederim, hocam bu arada önerinize uyup Selenium geçtimde sitede sadece name ile giriş yapılıyor bende otomatikleştirmek istemiştim yapamıyorum pyautogui geçeceğim sanırım tekrardan. Bunun hakkında bir öneriniz var mıdır?
Kod:username=driver.find_element(By.NAME,"Username")
Böyle bir şey yapmama rağmen işe yaramıyor hiçbir şekilde hata veriyor. Baktığımda bazı kişilerde çalışıyor ama ben çalıştıramadım.
Bak şimdi, by. Name dediğinde, HTML tagleri içerisinde ki attributelarda, name Attribute'u için de "username" varsa getirecek. Username girdiğin kutuya sağ tıkla, incele de, sonra da bak ne name vermişler. Onu yaz.
Bu arada eğer programlamayla ilgilendiğinden böyle bir projeyle uğraşıyorsan, TAA en başa dönüp pek çok kavramı öğrenmen lazım. Şu an bu kadar zorlanmanın sebebi bu.
Ne hata veriyor bunu yaptığında? Hatayı da atsana. Tahmin ede ede gitmeyeyim.Zaten bu şekilde yaptım name kısmında öyle yazıyor fakat hiçbir işe yaramıyor.
Ne hata veriyor bunu yaptığında? Hatayı da atsana. Tahmin ede ede gitmeyeyim.
username=driver.find_element(By.NAME,"UserName")
username.send_keys("şifre.")
Exception has occurred: ElementNotInteractableException
Message: element not interactable
Input'u girmesini istediğin yer visible durumda değil mi? Key'i gönderebilmen için, Selenium'un dokunabildiği bir alanda olması lazım. Herhangi bir pop up vs çıkıyor olması da key göndermesine engel olur.
Hayır, hangi site için yapmaya çalıştığını anlasam, elli kere çözmüştük şu işi.
Yasaklı sitelerden değilse, çıkmaz.Evet visible site ismi versem benim için sorun çıkar diye veremiyorum site kuralları vb.