v2.5.2
Giriş yap

python for döngüsüne girmiyor

suphiadmin
446 defa görüntülendi

merhaba python selenium ile bir web sitesine gidip
bir class a ait bilgileri alıp ekrana yazdırmak istiyorum
-udemy python kursunda çalışan kod

import selenium
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import random
import time

browser = webdriver.Chrome()

url = "https://eksisozluk.com/mustafa-kemal-ataturk--34712?p="

pageCount = 1
entries = []
entryCount = 1

while pageCount <= 10:
    randomPage = random.randint(1,1290)
    newUrl = url + str(randomPage)
    browser.get(newUrl)

    elements = browser.find_elements_by_css_selector(".content")
    for element in elements:
        entries.append(element.text)
    time.sleep(3)
    pageCount += 1

with open("entries.txt","w",encoding = "UTF-8") as file:
    for entry in entries:
        file.write(str(entryCount) + ".\n" + entry + "\n")
        file.write("***********************************\n")
        entryCount += 1



browser.close()




bu kod çalışıyor sorun yok fakat

import selenium
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
import random
import time
browser = webdriver.Firefox()
url = "https://www.bilmemnebilmemne.com/tr"
browser.get(url)
time.sleep(4)
username = "kadi"
password = "sifre"
panelac = browser.find_element(By.XPATH, "//*[@id='root']/div[1]/div[1]/div[2]/div[3]/button[1]")
panelac.click()
time.sleep(2)
usrnm = browser.find_element(By.XPATH, "/html/body/div[3]/div/div/div/div[2]/form/div[1]/div/input")
usrnm.click()
usrnm.send_keys(username)
passwordknk = browser.find_element(By.XPATH, "/html/body/div[3]/div/div/div/div[2]/form/div[2]/div/input")
passwordknk.click()
passwordknk.send_keys(password)
girisbtn = browser.find_element(By.XPATH, "/html/body/div[3]/div/div/div/div[2]/form/button")
girisbtn.click()
time.sleep(3)
kapa = browser.find_element(By.XPATH, "/html/body/div[3]/div/div/div/div[1]/button")
kapa.click()
time.sleep(2)
casinoadres = browser.find_element(By.XPATH, "//*[@id='root']/div[1]/div[1]/div[2]/div[2]/a[4]")
casinoadres.click()
time.sleep(3)
room = browser.find_element(By.XPATH, "/html/body/div[1]/div[1]/div[2]/div/div[3]/div/div[2]/div/div[2]/div[3]")
room.click()
time.sleep(15)
i = 1
numbers = []
kacinci = 1
time.sleep(2)
while i <= 10:
    elements = browser.find_elements(By.CSS_SELECTOR, ".value--877c6")
    for e in elements:
        print("selamm", e)
        numbers.append(e.text)
    time.sleep(3)
with open("entries.txt","w",encoding = "UTF-8") as file:
    for entry in numbers:
        file.write(str(kacinci) + ".\n" + entry + "\n")
        file.write("***********************************\n")
        kacinci += 1

kod çalışmıyor diye print("selam") tarzı şeyler yazdım
yani print("selam") dememi bile ekrana yazdoırmıyor bu kodun çıktısı :

=================================== RESTART: C:\Users\user\Desktop\testtt.py ===================================


YANİ HİÇ BİRŞEY nerde hata yapıyorum
classı değiştirip kafadan sallama bişey yazınca
sonuc:

=================================== RESTART: C:\Users\user\Desktop\testtt.py ===================================

fakat dün class name i farklı idi ve bugün çalıştırınca bu class bulunamadı diyordu
şimdi hiç bişey
değiştirdim xpath yaptım yine aynı
find_elements değilde find_element yaptım
çıktı :

Traceback (most recent call last):
  File "C:\Users\user\Desktop\bettilt.py", line 39, in <module>
    elements = browser.find_element(By.XPATH, "/html/body/div[4]/div/div/div/div[2]/div/div[5]/div[2]/div/div/div/div[2]/div/div[1]/div")
  File "C:\Users\user\AppData\Local\Programs\Python\Python310\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 1244, in find_element
    return self.execute(Command.FIND_ELEMENT, {
  File "C:\Users\user\AppData\Local\Programs\Python\Python310\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 424, in execute
    self.error_handler.check_response(response)
  File "C:\Users\user\AppData\Local\Programs\Python\Python310\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 247, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException: Message: Unable to locate element: /html/body/div[4]/div/div/div/div[2]/div/div[5]/div[2]/div/div/div/div[2]/div/div[1]/div
Stacktrace:
WebDriverError@chrome://remote/content/shared/webdriver/Errors.jsm:181:5
NoSuchElementError@chrome://remote/content/shared/webdriver/Errors.jsm:393:5
element.find/</<@chrome://remote/content/marionette/element.js:299:16


nerde nasıl hata yapıyorum
xpath doğru find element ile tek bir div (clası farklı) olmasına rağmen halen böyle diyor

Cevap yaz
Cevaplar (2)
abdullahx
1172 gün önce

Hocam bir aralar ben de uğraşıyordum selenium ile ama detaylarını unuttuk. Gecko driver indirdiniz mi mesela.
Ayrıca BeautifulSoup ve request modüllerine de bir göz atın, belki yapmak istediğinizi bu modüller ile daha kolay yapabilirsiniz

suphiadmin
1173 gün önce

arkadaşalr whilede i++ yapmamış olmam sorunu çözmez en azıdnan 1 kere yazdırırdı