Python No module named "webbot" hatası

Özelden yardımlaşma yasak maalesef. Buradan yardımcı olabilirim elimden geldiğince.



Biraz araştırmanın ardından webbot kütüphanesinin selenium kütüphanesinin v4 güncellemesi ile gelen özelliklerine optimize olmadığını fark ettim. v4 güncellemesinden önce driver için bir yol belirtilirdi ve seçenekler sunulurdu. Bunu webbot düzgünce yapıyordu fakat güncellemenin ardından selenium kütüphanesi kendi driverını indirmeye başladı. Bu sebeple webbot kütüphanesini güncellemek gerekiyor.

Bir kısmına kadar gidebildim aslında. Basitçe anlatmak gerekirse "C:\Users\kullanici\AppData\Roaming\Python\Python310\site-packages\webbot\webbot.py" yolundaki webbot kütüphanesi üzerinde biraz değişiklik yapmak gerekiyordu. Bu yol pek tabii ki Python 3.10 sürümü için. Hata aldığınız yerde zaten yazıyordur kütüphanenin yolu.

Öncelikle bu yoldaki kütüphane dosyasını açıyoruz. Sonra birkaç kütüphane indiriyoruz. PyCharm'da aşağıda bulunan terminalden ya da packages kısmından indirebilirsiniz. Bunlar;
Python:
pip install selenium  #Eğer indirilmemişse
pip install webdriver-manager
Ardınan en yukarıdaki importlara şunları ekliyoruz;
Python:
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
Sonuç olarak tüm importlar şu şekilde gözükecek;
Python:
import os
import re
import string
import errno
import sys
from collections import OrderedDict

from selenium import webdriver
from selenium.common import exceptions
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager

İmportlar tamamlandıktan sonra 70. satırdaki koda geliyoruz. 70. satırı şu ile değiştiriyoruz.
Python:
self.driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()))
Bu webbot kütüphanesini selenium v4 ile optimize edecek fakat halen işlem yapamayız çünkü eski seleniumda gerekli olan bazı attributeler hata verecek. Onun için de 73 ve 81. satır arasındaki tüm kodları siliyoruz. Sonuç olarak 70 ve 76. satır arası böyle gözükecek;
Python:
        self.driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()))
        self.Key = Keys
        self.errors = []

    def close_current_tab(self):
        """Closes the current tab which the driver is controlling"""
        self.driver.close()

Tüm bunların ardından webbot kütüphanesi artık selenium ile optime hale gelmiş olacak ve yazdığınız kodlar çalışacak. Tabii ki hatalar da görülecek. Webbot kütüphanesinin çok acemice yazıldığı açıkça anlaşılabiliyor. Selenium üzerine kurulu bir kütüphane kullanmanızı önermem çünkü çoğu özellik kısıtlanır.

Sonuç olarak kütüphane üzerinde küçük değişiklikler yaparak çalışır hale getirebiliriz. Ben birazını yaptım fakat devamına bilgim yetmedi. @özgün deniz hocamın dediğine de katılıyorum. Bence de seleniuma geçin. Geçmek istemezseniz de çözümü yukarıda sundum.

İyi sosyaller.
Hocam selenium'u kurdum, aşağıya böyle bir kod yazdım

Python:
from selenium import webdriver
import time

driver = webdriver.Chrome("C:\chromedriver.exe")
url= ("https://instagram.com")
driver.get(url)

-

Python:
Traceback (most recent call last):
  File "C:\Users\gamei\PycharmProjects\pythonProject\main.py", line 1, in <module>
    from selenium import webdriver
ModuleNotFoundError: No module named 'selenium'

Process finished with exit code 1

Böyle bir hata almaktayım.

@Mahir Çınar Girgin Hocam bir şekilde yukarıda yazdığım hatayı hallettim fakat şimdi ise

Python:
C:\Users\gamei\PycharmProjects\pythonProject\main.py:4: DeprecationWarning: executable_path has been deprecated, please pass in a Service object
  driver = webdriver.Chrome("C:\chromedriver.exe")

Bu hatayı almaktayım ve Instagram sayfası açılıyor fakat 1 saniye sonra kapanıyor.
 
Son düzenleme:
Hocam selenium'u kurdum, aşağıya böyle bir kod yazdım

Python:
from selenium import webdriver
import time

driver = webdriver.Chrome("C:\chromedriver.exe")
url= ("https://instagram.com")
driver.get(url)

-

Python:
Traceback (most recent call last):
  File "C:\Users\gamei\PycharmProjects\pythonProject\main.py", line 1, in <module>
    from selenium import webdriver
ModuleNotFoundError: No module named 'selenium'

Process finished with exit code 1

Böyle bir hata almaktayım.

@Mahir Çınar Girgin Hocam bir şekilde yukarıda yazdığım hatayı hallettim fakat şimdi ise

Python:
C:\Users\gamei\PycharmProjects\pythonProject\main.py:4: DeprecationWarning: executable_path has been deprecated, please pass in a Service object
  driver = webdriver.Chrome("C:\chromedriver.exe")

Bu hatayı almaktayım ve Instagram sayfası açılıyor fakat 1 saniye sonra kapanıyor.
Geçen mesajımda da söylediğim gibi aslında. Selenium'un v4 güncellemesi ile executable_path yani kaynak dışı driver'lar kalktı.

Önce şunu indirin;
Python:
pip install webdriver-manager
Ardından şunları importlayın;
Python:
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
Son olarak ise hata aldığınız satırı bu ile değiştirin;
Python:
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()))

Sorununuz çözülecektir.
 
Geçen mesajımda da söylediğim gibi aslında. Selenium'un v4 güncellemesi ile executable_path yani kaynak dışı driver'lar kalktı.

Önce şunu indirin;
Python:
pip install webdriver-manager
Ardından şunları importlayın;
Python:
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
Son olarak ise hata aldığınız satırı bu ile değiştirin;
Python:
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()))

Sorununuz çözülecektir.
Python:
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
from selenium import webdriver
import time

driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()))
url= ("https://instagram.com")
driver.get(url)

Gerçekten kusura bakmayın çok sorun çıkartıyor. Yine olmadı, Kodda bir hata çıkmadı fakat Instagram açılıp hemen kapanıyor.

Satırın sonuna
Python:
time.sleep(5000)
ekleyince sorun çözüldü fakat belli bir süre sonra kapanacaktır değil mi ?
 
Python:
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
from selenium import webdriver
import time

driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()))
url= ("https://instagram.com")
driver.get(url)

Gerçekten kusura bakmayın çok sorun çıkartıyor. Yine olmadı, Kodda bir hata çıkmadı fakat Instagram açılıp hemen kapanıyor.

Satırın sonuna
Python:
time.sleep(5000)
ekleyince sorun çözüldü fakat belli bir süre sonra kapanacaktır değil mi ?
Önemli değil. Yardımcı olmak için buradayız sonuçta.

Evet bir süre sonra kapanacaktır. Zaten selenium otomatik işlemler yapmak için geliştirilen bir program. Yani açık tutması gerekmiyor. Hemen işi yap çık mantığına dayalı da diyebiliriz. Bu nedenle en iyi çözüm sizin yaptığınız gibi zaman aşımı uygulamak
 

Yeni konular

Geri
Yukarı