`from selenium.webdriver.firefox.service import Service
from selenium import webdriver
from selenium.webdriver.common.by import By
from bs4 import BeautifulSoup
from selenium.webdriver.support import expected_conditions as EC
import time
def url_query_make(url_name, wait2, wait3, extension):
driver.find_element(By.ID, "YncDomSorguTxt").send_keys(url_name)
time.sleep(wait2)
driver.find_element(By.ID, "sag").click()
time.sleep(0.5)
driver.find_element(By.ID, "sag").click()
time.sleep(0.5)
if extension in ".com" or extension in "com":
driver.find_element(By.ID, "DomUz49").click()
elif extension in ".net" or extension in "net":
driver.find_element(By.ID, "DomUz173").click()
else:
print("Uzantı desteklenmemektedir.")
driver.find_element(By.XPATH, "//button[contains(text(), 'ARA')]").click()
time.sleep(wait3)
soup = BeautifulSoup(driver.page_source, "html.parser")
url_status = soup.find("div", {"id" : "{}{}".format(url_name_, extension)})
transfer_status = soup.find("div", {"id" : "{}{}".format(url_name_, extension)})
backorder_status = soup.find("div", {"id" : "{}{}".format(url_name_, extension)})
# alert_content = soup.find("div", {"id" : "{}{}".format(url_name_, extension)}).find("a", {"class" : "sag"}).get_attribute_list("onclick")[0]
# if backorder_status in "Backorder Yapılamaz (?)":
# backorder_date = alert_content.split(" ")[15]
# else:
# backorder_date = "-"
return_dict = {
"url_status" : url_status,
"transfer_status" : transfer_status,
"backorder_status" : backorder_status
# "backorder_date" : backorder_date
}
return return_dict
driver_path="geckodriver.exe"
servis = Service(driver_path)
driver = webdriver.Firefox(service=servis)
driver.get("https://www.yoncu.com/")
time.sleep(0.5)
driver.find_element(By.ID, "LightBoxKpt").click()
dom_list = [
"muharrem.com", "talha.net", "küçük.net"
]
for i in dom_list:
url_name = i.split(".")[0]
extension_ = "." + i.split(".")[1]
result = url_query_make(url_name_ = url_name, wait2 = 3, wait3 = 5, extension=extension_)
print("URL Adı: " + i + "\n\n")
print(result["url_status"])
print(result["transfer_status"])
print(result["backorder_status"])
# print(result["backorder_date"])
print("\n\n\n")
driver.find_element(By.ID, "YncDomSorguTxt").clear()
driver.quit()
`
Yukarıda verdiğim kodları yazmamdaki amaç yöncü.comda birden fazla domaini sorgulamak. Yazdığım fonksiyon teket teker sorgu yaptığım zaman sorun çıkartmıyor ama döngüyle kullanınca üçüncü dngüden sonra boş değer dndermeye başlıyor. Normalde find ve get metodlatı da ekliydi ama hata ayıklayabilmek için çıkarttım. Bu metodları kullanınca AttributeError alıyorum bunun sebebide soup.find() fonksiyonunun üçüncü dongüde None değer döndürmesi.