I'm making an instagram bot. def nav_user
should navigate me to a user page even after log in has failed due to a wrong username and password.
It should give me a link like this: https://www.instagram.com/therock/
But actually, I am getting this link: https://www.instagram.com/accounts/login/?next=/therock/
Any suggestions?
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from time import sleep
import os
class instagrambot:
def __init__(self, username, password):
self.username = username
self.password = password
self.driver = webdriver.Chrome('./chromedriver')
self.login()
def login(self):
self.driver.get('https://instagram.com/accounts/login')
sleep(2)
self.driver.find_element_by_name('username').send_keys(self.username)
password_field = self.driver.find_element_by_name('password')
password_field.send_keys(self.password)
self.driver.find_element_by_name('password').send_keys(Keys.RETURN)
def nav_user(self, user):
sleep(3)
self.driver.get('https://instagram.com/' + user)
bot = instagrambot('username123', 'password')
bot.nav_user('therock')
I think you should wait for a while for page loaded after logged in and navigate to new user, you can use wait page load function like this:
browser = webdriver.Chrome()
browser.get("Your_URL")
time = 5
try:
myElem = WebDriverWait(browser, delay).until(EC.presence_of_element_located((By.ID, 'ELEMENT_ID')))
print "LOAD DONE"
except TimeoutException:
print "LONG TIME RESPONSE"
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.