Fırında tavuğun yanına hangi salata ?

Onur

Global Mod
Global Mod
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
 
Üst