Hallo zusammen,
ich habe vorhin angefangen ein kleines Programm zu schreiben. Nun wollte ich zwischendrin mal testen und mir ist direkt ein Fehler aufgefallen.
Und zwar steht bei mir "ImportError: attempted relative import with no known parent package" und ich bekomme diesen nicht gefixt.
Habe bereits im Internet recherchiert, aber bin nicht weiter gekommen.
Bin noch neu bei Python, habe aber Erfahrung mit Java und C++
Falls jemand eine Idee hat gerne her damit.
Mein Code:
from selenium import webdriver
from selenium.webdriver.common.by import By
from.selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import excepted_conditions as EC
from selenium.webdriver.common.keys import Keys
import time
class InstagramBot():
def __init__(self, username, password):
self.username = username
self.password = password
self.browser = webdriver.Chrome("./chromedriver.exe")
def WaitForObject(self, type, string):
return WebDriverWait(self.browser, 3).until(EC.presence_of_element_located((type, string)))
def WaitForObjects(self, type, string):
return WebDriverWait(self.browser, 3).until(EC.presence_of_all_elements_located((type, string)))
def login(self):
self.browser.get("https://www.instagram.com/accounts/login")
Bot = InstagramBot("User", "Passwort")
Bot.login()
Fehler beim importieren
Du hast einen Punkt zu viel:
statt
Das nächste mal bitte die vollständige Fehlermeldung posten, sonst muß man lange nach der richtigen falschen Zeile suchen.
Code: Alles auswählen
from.selenium.webdriver.support.ui import WebDriverWait
Code: Alles auswählen
from selenium.webdriver.support.ui import WebDriverWait
Okay, das hat geklappt. Nun habe ich aber direkt das nächste Problem :/
Und zwar ruft der mir die Bilder nicht auf, obwohl er sie eigentlich aufrufen müsste.
Mein Code:
Fehlercode:
Ich komme leider wieder nicht drauf, woran es liegen könnte
Und zwar ruft der mir die Bilder nicht auf, obwohl er sie eigentlich aufrufen müsste.
Mein Code:
Code: Alles auswählen
from selenium import webdriver
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.webdriver.common.keys import Keys
import time
class InstagramBot():
def __init__(self, username, password):
self.username = username
self.password = password
self.browser = webdriver.Chrome("./chromedriver.exe")
def WaitForObject(self, type, string):
return WebDriverWait(self.browser, 3).until(EC.presence_of_element_located((type, string)))
def WaitForObjects(self, type, string):
return WebDriverWait(self.browser, 3).until(EC.presence_of_all_elements_located((type, string)))
def login(self):
self.browser.get("https://www.instagram.com/accounts/login")
fenster_cookies = self.WaitForObject(By.CSS_SELECTOR, "button.aOOlW.bIiDR").click()
login_objects = self.WaitForObjects(By.CSS_SELECTOR, "input._2hvTZ.pexuQ.zyHYP")
login_objects[0].send_keys(self.username)
login_objects[1].send_keys(self.password)
login_objects[1].send_keys(Keys.ENTER)
fenster_benachrichtigungen = self.WaitForObject(By.CSS_SELECTOR, "button.aOOlW.HoLwm").click()
def search_hashtag(self, hashtag):
self.browser.get(f"https://www.instagram.com/explore/tags/{hashtag}/")
self.browser.execute_script("windows.scrollTo(0, 4000)")
all_photos = self.WaitForObjects(By.CSS_SELECTOR, "div.v1Nh3.kIKUG._bz0w")
for photo in all_photos:
photo.click()
self.WaitForObject(By.CSS_SELECTOR, "[aria-label = 'Gefällt mir']").click()
self.WaitForObject(By.CSS_SELECTOR, "[aria-label = 'Schließen']").click()
time.sleep(5)
Bot = InstagramBot("BENUTZERNAME", "PASSWORT")
Bot.login()
Bot.search_hashtag("Hashtag")
Fehlercode:
Code: Alles auswählen
[color=#FF0000]Traceback (most recent call last):
File "C:\Users\Tobi\Desktop\Instagram Bot\bot.py", line 52, in <module>
Bot.search_hashtag("HASHTAG")
File "C:\Users\Tobi\Desktop\Instagram Bot\bot.py", line 37, in search_hashtag
self.browser.execute_script("windows.scrollTo(0, 4000)")
File "C:\My_Python\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 634, in execute_script
return self.execute(command, {
File "C:\My_Python\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "C:\My_Python\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.JavascriptException: Message: javascript error: windows is not defined
(Session info: chrome=88.0.4324.182)[/color]
- __blackjack__
- User
- Beiträge: 14054
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@tobi.wld: Das liegt daran das `windows` in der Zeile ``self.browser.execute_script("windows.scrollTo(0, 4000)")`` in JavaScript im Browser nicht definiert ist. Wieder ein ein-Zeichen-Schreibfehler. 
“Vir, intelligence has nothing to do with politics!” — Londo Mollari