Çözüldü Python Selenium ile Instagram kullanıcı girişi

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.

sancak146

Kilopat
Katılım
3 Mayıs 2019
Mesajlar
59
Merhaba Selenium ve Python kullanarak Instagram girişlerini otomatikleştirmek istiyorum fakat Instagram kullanıcı adı girişindeki inputa herhangi bir veri yazmayı beceremedim.
İnputu tanıtırken.
Xpath, css_selector ya da name kullanabiliyoruz burada xpath denedim fakat olmadı diğerlerinde'de aynı şekilde sorun yaşıyorum destek olabilecek var mı?

Python:
from selenium import webdriver.
from selenium.webdriver.common.by import By.
import time.

username = "testuser"
password = "pwd123"

driver = webdriver.Chrome(r"C:\Users\yusuf\Desktop\chromedriver.exe")
driver.maximize_window()

url = "https://www.instagram.com/"
driver.get(url)

userNameInput = driver.find_element(by=By.XPATH, value= '//*[@id="loginForm"]/div/div[1]/div/label/input')
time.sleep(2)

usernameInput.send_key(username)
time.sleep(2)

driver.close()
 
Çözüm
Aramadan önce 1-2 saniye bekle.

Ben firefox ile yaptım ama genel mantık aynı.

Python:
import time
from webbrowser import Chrome
from selenium import webdriver
from selenium.webdriver.firefox.options import Options
from selenium.webdriver.firefox.service import Service
from webdriver_manager.firefox import GeckoDriverManager

options = Options()
options.headless = False
driver = webdriver.Firefox(options=options, service=Service(GeckoDriverManager().install()))

username = "testuser"
password = "pwd123"

url = "https://www.instagram.com/"
driver.get(url)

time.sleep(2)

a = driver.find_element("xpath",'//*[@id="loginForm"]/div/div[1]/div/label/input')
b = driver.find_element("xpath",'/html/body/div[1]/section/main/article/div[2]/div[1]/div[2]/form/div/div[2]/div/label/input')
time.sleep(2)

a.send_keys(username)
b.send_keys(password)

time.sleep(2)



Python:
#öncelikle tüm paketlerini güncelle çünkü değişen çok şey var seleniumda
#pip install selenium
#pip install webdriver-manager

import time
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager

options = Options()
options.headless = False
driver = webdriver.Chrome(options=options, service=Service(ChromeDriverManager().install()))

username = "testuser"
password = "pwd123"

url = "https://www.instagram.com/"
driver.get(url)

time.sleep(2) #bu sleep öneli çünkü kimsenin interneti/pc'si çok hızlı değil sayfa yüklenmeyebilir

a = driver.find_element("xpath",'//*[@id="loginForm"]/div/div[1]/div/label/input')
b = driver.find_element("xpath",'/html/body/div[1]/section/main/article/div[2]/div[1]/div[2]/form/div/div[2]/div/label/input')
time.sleep(2)

a.send_keys(username)
b.send_keys(password)

time.sleep(2)
@sancak146 buyrun chrome kodu.
Hata mesajını iletir misin? Bir de sleep eklemene gerek yok böyle adımlarda.
 
Hata mesajını iletir misin? Bir de sleep eklemene gerek yok böyle adımlarda.

Kod:
DevTools listening on ws://127.0.0.1:49770/devtools/browser/26bbca22-0d8b-4823-96ef-c940b7067272
[3240:12712:1013/202108.960:ERROR:interface_endpoint_client.cc(689)] Message 3 rejected by interface blink.mojom.Widget
Traceback (most recent call last):
 File "c:/Users/yusuf/Desktop/programlama/16_python_ile_bot_yazimi/16.5_,instagram.py", line 14, in <module>
 userNameInput = driver.find_element(by=By.XPATH, value= '//*[@id="loginForm"]/div/div[1]/div/label/input')
 File "C:\Python\Python38\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 856, in find_element.
 return self.execute(Command.FIND_ELEMENT, {
 File "C:\Python\Python38\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 429, in execute.
 self.error_handler.check_response(response)
 File "C:\Python\Python38\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 243, in check_response.
 raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"xpath","selector":"//*[@id="loginForm"]/div/div[1]/div/label/input"}
 (Session info: chrome=106.0.5249.119)
Stacktrace:
Backtrace:
 Ordinal0 [0x00B51ED3+2236115]
 Ordinal0 [0x00AE92F1+1807089]
 Ordinal0 [0x009F66FD+812797]
 Ordinal0 [0x00A255DF+1005023]
 Ordinal0 [0x00A257CB+1005515]
 Ordinal0 [0x00A57632+1209906]
 Ordinal0 [0x00A41AD4+1120980]
 Ordinal0 [0x00A559E2+1202658]
 Ordinal0 [0x00A418A6+1120422]
 Ordinal0 [0x00A1A73D+960317]
PS C:\Users\yusuf\Desktop\programlama\16_python_ile_bot_yazimi> & C:/Python/Python38/python.exe c:/Users/yusuf/Desktop/programlama/16_python_ile_bot_yazimi/16.5_,instagram.py
c:/Users/yusuf/Desktop/programlama/16_python_ile_bot_yazimi/16.5_,instagram.py:8: DeprecationWarning: executable_path has been deprecated, please pass in a Service object.
 driver = webdriver.Chrome(r"C:\Users\yusuf\Desktop\chromedriver.exe")

DevTools listening on ws://127.0.0.1:49804/devtools/browser/aa8c9b56-fd10-4bbb-aa0c-d8a5933e009a
Traceback (most recent call last):
 File "c:/Users/yusuf/Desktop/programlama/16_python_ile_bot_yazimi/16.5_,instagram.py", line 14, in <module>
 userNameInput = driver.find_element(by=By.XPATH, value= '//*[@id="loginForm"]/div/div[1]/div/label/input')
 File "C:\Python\Python38\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 856, in find_element.
 return self.execute(Command.FIND_ELEMENT, {
 File "C:\Python\Python38\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 429, in execute.
 self.error_handler.check_response(response)
 File "C:\Python\Python38\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 243, in check_response.
 raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"xpath","selector":"//*[@id="loginForm"]/div/div[1]/div/label/input"}
 (Session info: chrome=106.0.5249.119)
Stacktrace:
Backtrace:
 Ordinal0 [0x00B51ED3+2236115]
 Ordinal0 [0x00AE92F1+1807089]
 Ordinal0 [0x009F66FD+812797]
 Ordinal0 [0x00A255DF+1005023]
 Ordinal0 [0x00A257CB+1005515]
 Ordinal0 [0x00A57632+1209906]
 Ordinal0 [0x00A41AD4+1120980]
 Ordinal0 [0x00A559E2+1202658]
 Ordinal0 [0x00A418A6+1120422]
 Ordinal0 [0x00A1A73D+960317]
 Ordinal0 [0x00A1B71F+964383]
 GetHandleVerifier [0x00DFE7E2+2743074]
 GetHandleVerifier [0x00DF08D4+2685972]
 GetHandleVerifier [0x00BE2BAA+532202]
 GetHandleVerifier [0x00BE1990+527568]
 Ordinal0 [0x00AF080C+1837068]
 Ordinal0 [0x00AF4CD8+1854680]
 Ordinal0 [0x00AF4DC5+1854917]
 Ordinal0 [0x00AFED64+1895780]
 BaseThreadInitThunk [0x75C1FA29+25]
 RtlGetAppContainerNamedObjectPath [0x77C07BBE+286]
 RtlGetAppContainerNamedObjectPath [0x77C07B8E+238]

Konsolda böyle bir çıktı alıyorum ama anlam veremedim.
 
Aramadan önce 1-2 saniye bekle.

Ben firefox ile yaptım ama genel mantık aynı.

Python:
import time
from webbrowser import Chrome
from selenium import webdriver
from selenium.webdriver.firefox.options import Options
from selenium.webdriver.firefox.service import Service
from webdriver_manager.firefox import GeckoDriverManager

options = Options()
options.headless = False
driver = webdriver.Firefox(options=options, service=Service(GeckoDriverManager().install()))

username = "testuser"
password = "pwd123"

url = "https://www.instagram.com/"
driver.get(url)

time.sleep(2)

a = driver.find_element("xpath",'//*[@id="loginForm"]/div/div[1]/div/label/input')
b = driver.find_element("xpath",'/html/body/div[1]/section/main/article/div[2]/div[1]/div[2]/form/div/div[2]/div/label/input')
time.sleep(2)

a.send_keys(username)
b.send_keys(password)

time.sleep(2)



Python:
#öncelikle tüm paketlerini güncelle çünkü değişen çok şey var seleniumda
#pip install selenium
#pip install webdriver-manager

import time
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager

options = Options()
options.headless = False
driver = webdriver.Chrome(options=options, service=Service(ChromeDriverManager().install()))

username = "testuser"
password = "pwd123"

url = "https://www.instagram.com/"
driver.get(url)

time.sleep(2) #bu sleep öneli çünkü kimsenin interneti/pc'si çok hızlı değil sayfa yüklenmeyebilir

a = driver.find_element("xpath",'//*[@id="loginForm"]/div/div[1]/div/label/input')
b = driver.find_element("xpath",'/html/body/div[1]/section/main/article/div[2]/div[1]/div[2]/form/div/div[2]/div/label/input')
time.sleep(2)

a.send_keys(username)
b.send_keys(password)

time.sleep(2)
@sancak146 buyrun chrome kodu.
 
Son düzenleme:
Çözüm
Denedim fakat sonuç alamıyordum.

Böyle bir xpath olmadığı hatası alıyorsun. CSS ile bunu denedin mi? 'input[name=username]'

GitHub - burakkurtuk/instagram-bot-automation buradan da bakabilirsin mantığına. Ben Java ile yazdım.

Denedim fakat sonuç alamıyordum.


Teşekkür ederim artık çalıştırabiliyorum benim yazdığım kod ile benzerlikler olsa da yenilikler için çok fazla değil mi bu farklılık :/
 
İşte çok şey değişmiş maalesef.

Python:
from selenium import webdriver
import time

url = "https://www.instagram.com/"

username = "testuser"
password = "pwd123"

driver = webdriver.Chrome()
driver.maximize_window()

driver.get(url)
time.sleep(2)

driver.find_element("xpath", "//*[@id='loginForm']/div/div[1]/div/label/input").send_keys(username)
driver.find_element("xpath", "//*[@id='loginForm']/div/div[2]/div/label/input").send_keys(password)
time.sleep(1)

driver.find_element("xpath", "//*[@id='loginForm']/div/div[3]/button/div").click()
time.sleep(2)

driver.close()

Bakın en yalın hali ile bu şekilde çalıştırabildim daha öncesinde çalışmamıştı kafa karıştırıcı gerçekten
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…