Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 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 import ActionChains
- def login(driver):
- username = "PLACEHOLDER" # <username here>
- password = "PLACEHOLDER" # <password here>
- # Load page
- driver.get("https://www.instagram.com/accounts/login/")
- driver.implicitly_wait(10)
- # Login
- driver.find_element_by_xpath("//span[@id='react-root']/div/article/div/div/div/form/div/input").send_keys(username)
- driver.find_element_by_xpath("//span[@id='react-root']/div/article/div/div/div/form/div[2]/input").send_keys(password)
- driver.find_element_by_xpath("//span[@id='react-root']/div/article/div/div/div/form/span/button").click()
- # Wait for the login page to load
- WebDriverWait(driver, 15).until(
- EC.presence_of_element_located((By.LINK_TEXT, "See All")))
- def scrape_followers(driver, account):
- # Load account page
- driver.get("https://www.instagram.com/{0}/".format(account))
- # Click the 'Follower(s)' link
- driver.find_element_by_partial_link_text("follower").click()
- # Wait for the followers modal to load
- xpath = "//div[@style='position: relative; z-index: 1;']/div/div[2]/div/div[1]"
- WebDriverWait(driver, 10).until(
- EC.presence_of_element_located((By.XPATH, xpath)))
- # scrape followers
- xpath = "//div[@style='position: relative; z-index: 1;']//ul/li/div/div/div/div/a"
- followers_elems = driver.find_elements_by_xpath(xpath)
- return [e.text for e in followers_elems]
- def scrape_captions(driver,followers):
- for follower in followers:
- # go to followers page
- driver.get("https://www.instagram.com/{0}/".format(follower))
- driver.implicitly_wait(2)
- # click on picture using path THIS IS DOING NOTHING :(
- driver.find_element_by_xpath("//span[@id='react-root']/section/main/article/div/div/div/a/div[2]").click()
- if __name__ == "__main__":
- driver = webdriver.Firefox()
- driver.maximize_window()
- try:
- login(driver)
- followers = scrape_followers(driver, "YOUR_USERNAME_HERE")
- caption = scrape_captions(driver, followers)
- finally:
- driver.quit()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement