简体   繁体   中英

I can't navigate to instagram pages after login using selenium and python

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM