import time
import random
import re
import os
import sys
from datetime import datetime
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import (
NoSuchElementException,
TimeoutException,
WebDriverException
)
import undetected_chromedriver as uc
from fake_useragent import UserAgent
WAIT_BETWEEN = (45, 65)
BOT_BLOCK_SLEEP = 500
MAX_RETRY = 3
def temizle_sayi(text):
match = re.search(r'([d.,]+)', text)
if match:
return int(match.group(1).replace('.', '').replace(',', ''))
return 0
def sonuc_sayisi(driver):
"""Google arama sonuç sayısını çek"""
try:
# Explicit wait süresi artırıldı
sonuc_div = WebDriverWait(driver, 20).until(
EC.presence_of_element_located((By.ID, "result-stats"))
)
text = sonuc_div.text
print(f"[DEBUG] result-stats içeriği: {text}")
return temizle_sayi(text)
except TimeoutException:
print("[!] result-stats bulunamadı, kaynak koddan regex ile deniyorum...")
html = driver.page_source
match = re.search(r'(?:Yaklaşık|About)s+([d.,]+)s+(?:sonuç bulundu|results)', html)
if match:
return temizle_sayi(match.group(1))
return 0
def main():
ua = UserAgent()
options = uc.ChromeOptions()
options.add_argument("--disable-blink-features=AutomationControlled")
options.add_argument(f"user-agent={ua.random}")
# options.add_argument("--headless=new") # İstersen görünmez çalıştır
driver = uc.Chrome(options=options)
fail_count = 0
while os.path.exists("site.txt"):
with open("site.txt", "r", encoding="utf-8") as f:
siteler = [x.strip() for x in f if x.strip()]
if not siteler:
break
site = siteler[0]
query_url = f"https://www.google.com/search?q={site}"
print("="*60)
print(f"[{datetime.now().strftime('%H:%M:%S')}] Site işleniyor: {site}")
success = False
for attempt in range(1, MAX_RETRY+1):
try:
print(f" Deneme {attempt}/{MAX_RETRY} -> {query_url}")
driver.get(query_url)
# Google sayfa yüklemesini beklemek için sabit bekleme
time.sleep(15)
sayi = sonuc_sayisi(driver)
print(f" [+] Başarılı -> {sayi} sonuç bulundu")
with open("sonuc.txt", "a", encoding="utf-8") as out:
out.write(f"{site} | {sayi}n")
fail_count = 0
success = True
break
except Exception as e:
print(f" [!] Hata: {str(e)}")
time.sleep(random.uniform(3, 6))
if not success:
print(f" [-] {site} için sonuç alınamadı, pas geçiliyor.")
with open("pas.txt", "a", encoding="utf-8") as out:
out.write(f"{site}n")
fail_count += 1
if fail_count >= 5:
print(f"[!] 5 ardışık hata -> Google bot engeli. {BOT_BLOCK_SLEEP} sn bekleniyor...")
time.sleep(BOT_BLOCK_SLEEP)
fail_count = 0
# İşlenen siteyi listeden çıkar
with open("site.txt", "w", encoding="utf-8") as f:
for s in siteler[1:]:
f.write(s + "n")
bekleme = random.randint(*WAIT_BETWEEN)
print(f"[*] Bir sonraki siteye geçmeden {bekleme} sn bekleniyor...n")
time.sleep(bekleme)
driver.quit()
print("nTüm işlemler tamamlandı
")
if __name__ == "__main__":
try:
main()
except KeyboardInterrupt:
print("n[!] Kullanıcı tarafından durduruldu.")
sys.exit(0)
PS C:UsersKullanıcıDesktopkuzen> python index.py
============================================================
[11:30:58] Site işleniyor: site:civanlarinsaat.com.tr
Deneme 1/3 -> https://www.google.com/search?q=site:civanlarinsaat.com.tr
[DEBUG] result-stats içeriği:
[+] Başarılı -> 0 sonuç bulundu
[*] Bir sonraki siteye geçmeden 59 sn bekleniyor...
hala aynı sonuc amk pici yanlış mı ayarlıyorsun sayfa kaynağını ac ordan bak
view-source:https://www.google.com/search?q=site:civanlarinsaat.com.tr&sei=RpS-aOy-CJKK7NYP2szh8QU
c/divx3ex3c/divx3ex3cdivx3ex3cdiv classx3dx22XhWQv sjVJQd rNHryx22 jscontrollerx3dx22pzkXnbx22 jsnamex3dx22qRxiefx22 data-vx3dx22x22 rolex3dx22linkx22 tabindexx3dx220x22 jsactionx3dx22click:h5M12e;mouseover:rESl3;mouseout:MDJmox22x3ex3cdiv jsnamex3dx22ibnC6bx22 jsslotx3dx22x22x3ex3cspan jscontrollerx3dx22TmFfhfx22 data-hrefx3dx22https://www.google.com/advanced_search?qx3dsite:civanlarinsaat.com.trx22 jsactionx3dx22aZcdhc:x8vc1x22x3eGeliu015fmiu015f Aramax3c/spanx3ex3c/divx3ex3c/divx3ex3cdiv classx3dx22btCOFd XYRUldx22x3ex3c/divx3ex3cdiv classx3dx22XhWQv qd6zO ApHyTbx22x3ex3cdiv idx3dx22result-statsx22x3eYaklau015fu0131k 908 sonuxe7 bulundux3cnobrx3e (0,15 sn.)x26nbsp;x3c/nobrx3ex3c/divx3ex3c/divx3ex3c/divx3ex3c/divx3ex3c/divx3ex3c/divx3e');})();(function(){window.jsl.dh('_RpS-aLeYNPfixc8P8OjMiAs_15','x3cdivx3ex3cdiv jscontrollerx3dx22KSk4ycx22 data-dlx3dx220x22 data-mclx3dx221250x22 data-mwlx3dx22-1x22 jsactionx3dx22fFzSRc:v9xSwd;lgFTO:Geh74d;kPzEO:MlP2je;qo5q4d:VvZoSb;LImAlc:VvZoSb;rcuQ6b:npT2mdx22 classx3dx22EyBRubx22x3ex3cdiv jsnamex3dx22suEOdcx22 classx3dx22t4wgMcx22 stylex3dx22display:none;opacity:0;transform:scale(0.1)x22 aria-hiddenx3dx22truex22 data-hveidx3dx22CAUQAAx22 data-vedx3dx222ahUKEwi305iQ4MiPAxV3cfEDHXA0E7EQrOkHegQIBRAAx22x3ex3cdiv jsnamex3dx22V4zgDfx22
bak burdan al
import random
import re
import os
import sys
from datetime import datetime
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import (
NoSuchElementException,
TimeoutException,
WebDriverException
)
import undetected_chromedriver as uc
from fake_useragent import UserAgent
WAIT_BETWEEN = (45, 65)
BOT_BLOCK_SLEEP = 500
MAX_RETRY = 3
def temizle_sayi(text):
match = re.search(r'([d.,]+)', text)
if match:
return int(match.group(1).replace('.', '').replace(',', ''))
return 0
def sonuc_sayisi(driver):
"""Google arama sonuç sayısını çek"""
try:
# Explicit wait süresi artırıldı
sonuc_div = WebDriverWait(driver, 20).until(
EC.presence_of_element_located((By.ID, "result-stats"))
)
text = sonuc_div.text
print(f"[DEBUG] result-stats içeriği: {text}")
return temizle_sayi(text)
except TimeoutException:
print("[!] result-stats bulunamadı, kaynak koddan regex ile deniyorum...")
html = driver.page_source
match = re.search(r'(?:Yaklaşık|About)s+([d.,]+)s+(?:sonuç bulundu|results)', html)
if match:
return temizle_sayi(match.group(1))
return 0
def main():
ua = UserAgent()
options = uc.ChromeOptions()
options.add_argument("--disable-blink-features=AutomationControlled")
options.add_argument(f"user-agent={ua.random}")
# options.add_argument("--headless=new") # İstersen görünmez çalıştır
driver = uc.Chrome(options=options)
fail_count = 0
while os.path.exists("site.txt"):
with open("site.txt", "r", encoding="utf-8") as f:
siteler = [x.strip() for x in f if x.strip()]
if not siteler:
break
site = siteler[0]
query_url = f"https://www.google.com/search?q={site}"
print("="*60)
print(f"[{datetime.now().strftime('%H:%M:%S')}] Site işleniyor: {site}")
success = False
for attempt in range(1, MAX_RETRY+1):
try:
print(f" Deneme {attempt}/{MAX_RETRY} -> {query_url}")
driver.get(query_url)
# Google sayfa yüklemesini beklemek için sabit bekleme
time.sleep(15)
sayi = sonuc_sayisi(driver)
print(f" [+] Başarılı -> {sayi} sonuç bulundu")
with open("sonuc.txt", "a", encoding="utf-8") as out:
out.write(f"{site} | {sayi}n")
fail_count = 0
success = True
break
except Exception as e:
print(f" [!] Hata: {str(e)}")
time.sleep(random.uniform(3, 6))
if not success:
print(f" [-] {site} için sonuç alınamadı, pas geçiliyor.")
with open("pas.txt", "a", encoding="utf-8") as out:
out.write(f"{site}n")
fail_count += 1
if fail_count >= 5:
print(f"[!] 5 ardışık hata -> Google bot engeli. {BOT_BLOCK_SLEEP} sn bekleniyor...")
time.sleep(BOT_BLOCK_SLEEP)
fail_count = 0
# İşlenen siteyi listeden çıkar
with open("site.txt", "w", encoding="utf-8") as f:
for s in siteler[1:]:
f.write(s + "n")
bekleme = random.randint(*WAIT_BETWEEN)
print(f"[*] Bir sonraki siteye geçmeden {bekleme} sn bekleniyor...n")
time.sleep(bekleme)
driver.quit()
print("nTüm işlemler tamamlandı

if __name__ == "__main__":
try:
main()
except KeyboardInterrupt:
print("n[!] Kullanıcı tarafından durduruldu.")
sys.exit(0)
PS C:UsersKullanıcıDesktopkuzen> python index.py
============================================================
[11:30:58] Site işleniyor: site:civanlarinsaat.com.tr
Deneme 1/3 -> https://www.google.com/search?q=site:civanlarinsaat.com.tr
[DEBUG] result-stats içeriği:
[+] Başarılı -> 0 sonuç bulundu
[*] Bir sonraki siteye geçmeden 59 sn bekleniyor...
hala aynı sonuc amk pici yanlış mı ayarlıyorsun sayfa kaynağını ac ordan bak
view-source:https://www.google.com/search?q=site:civanlarinsaat.com.tr&sei=RpS-aOy-CJKK7NYP2szh8QU
c/divx3ex3c/divx3ex3cdivx3ex3cdiv classx3dx22XhWQv sjVJQd rNHryx22 jscontrollerx3dx22pzkXnbx22 jsnamex3dx22qRxiefx22 data-vx3dx22x22 rolex3dx22linkx22 tabindexx3dx220x22 jsactionx3dx22click:h5M12e;mouseover:rESl3;mouseout:MDJmox22x3ex3cdiv jsnamex3dx22ibnC6bx22 jsslotx3dx22x22x3ex3cspan jscontrollerx3dx22TmFfhfx22 data-hrefx3dx22https://www.google.com/advanced_search?qx3dsite:civanlarinsaat.com.trx22 jsactionx3dx22aZcdhc:x8vc1x22x3eGeliu015fmiu015f Aramax3c/spanx3ex3c/divx3ex3c/divx3ex3cdiv classx3dx22btCOFd XYRUldx22x3ex3c/divx3ex3cdiv classx3dx22XhWQv qd6zO ApHyTbx22x3ex3cdiv idx3dx22result-statsx22x3eYaklau015fu0131k 908 sonuxe7 bulundux3cnobrx3e (0,15 sn.)x26nbsp;x3c/nobrx3ex3c/divx3ex3c/divx3ex3c/divx3ex3c/divx3ex3c/divx3ex3c/divx3e');})();(function(){window.jsl.dh('_RpS-aLeYNPfixc8P8OjMiAs_15','x3cdivx3ex3cdiv jscontrollerx3dx22KSk4ycx22 data-dlx3dx220x22 data-mclx3dx221250x22 data-mwlx3dx22-1x22 jsactionx3dx22fFzSRc:v9xSwd;lgFTO:Geh74d;kPzEO:MlP2je;qo5q4d:VvZoSb;LImAlc:VvZoSb;rcuQ6b:npT2mdx22 classx3dx22EyBRubx22x3ex3cdiv jsnamex3dx22suEOdcx22 classx3dx22t4wgMcx22 stylex3dx22display:none;opacity:0;transform:scale(0.1)x22 aria-hiddenx3dx22truex22 data-hveidx3dx22CAUQAAx22 data-vedx3dx222ahUKEwi305iQ4MiPAxV3cfEDHXA0E7EQrOkHegQIBRAAx22x3ex3cdiv jsnamex3dx22V4zgDfx22
bak burdan al