如何在 Instagram 中向下滚动关注者弹出窗口?
在这里,在本文中,我们将讨论如何使用Python在 Instagram 上向下滚动关注者弹出窗口。使用selenium,我们将自动化浏览器并在 Instagram 的社交网站上执行自动化。在开始实际实现之前,我们需要使用 pip 命令安装Selenium库。
安装:
pip install Selenium
现在,让我们检查是否安装了我们的selenium 。如果下面的命令没有给出任何错误,则表示selenium已成功安装。
Python3
import selenium
print(selenium.__version__)
Python3
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.wait import WebDriverWait
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.support import expected_conditions as EC
from webdriver_manager.microsoft import EdgeChromiumDriverManager
driver = webdriver.Chrome(ChromeDriverManager().install())
# open the webpage
driver.get("http://www.instagram.com")
# target username
username = WebDriverWait(
driver, 10).until(EC.element_to_be_clickable(
(By.CSS_SELECTOR, "input[name='username']")))
# target Password
password = WebDriverWait(
driver, 10).until(EC.element_to_be_clickable(
(By.CSS_SELECTOR, "input[name='password']")))
# enter username and password
username.clear()
username.send_keys("")
password.clear()
password.send_keys("")
# target the login button and click it
button = WebDriverWait(
driver, 2).until(EC.element_to_be_clickable(
(By.CSS_SELECTOR, "button[type='submit']"))).click()
time.sleep(5)
driver.get("https://www.instagram.com/geeks_for_geeks/followers/")
driver.find_element_by_partial_link_text("follower").click()
pop_up_window = WebDriverWait(
driver, 2).until(EC.element_to_be_clickable(
(By.XPATH, "//div[@class='isgrP']")))
# Scroll till Followers list is there
while True:
driver.execute_script(
'arguments[0].scrollTop = arguments[0].scrollTop + arguments[0].offsetHeight;',
pop_up_window)
time.sleep(1)
driver.quit()
输出:
3.141.0
方法:
现在,让我们讨论如何执行向下滚动功能的方法。使用 while 循环,我们将向下滚动关注者弹出窗口,直到我们的程序到达最后一个关注者。首先,我们将使用我们的登录 ID 和密码自动化登录过程,然后转到 GeeksforGeeks Instagram 页面。单击关注者的按钮,然后在弹出窗口中执行向下滚动操作。
- 首先,我们需要从Selenium库中导入时间模块和所有必要的类或方法。
- 安装Chrome 网络驱动程序,我们将通过它在 Chrome 网络浏览器上执行所有任务。与 Chrome 一样,我们可以安装任何其他浏览器,例如 Edge、IE、Firefox 等等。
driver = webdriver.Chrome(ChromeDriverManager().install())
使用上面的行,我们不需要在我们的系统中存在任何物理驱动程序。此行将使用 web.xml 自动安装所需的 chrome web 驱动程序。
- 使用驱动程序对象和具有给定 URL 的get()方法打开网站。
driver.get("http://www.instagram.com")
- WebDriverWait也称为显式等待。显式等待是定义在继续进行之前等待特定条件发生的代码。在这段代码中,在CSS_SELECTOR的帮助下,我们将找到用于登录目的的用户名和密码字段。
username = WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.CSS_SELECTOR, “input[name=’username’]”)))
password = WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.CSS_SELECTOR, “input[name=’password’]”)))
- 现在,在将用户名和密码放入所选字段之前,首先使用 clear() 方法清除用户名和密码字段。然后,使用send_keys()方法输入用户名和密码值。
username.clear()
username.send_keys("")
- 使用CSS_SELECTOR单击登录按钮。
button = WebDriverWait(driver, 2).until(EC.element_to_be_clickable((By.CSS_SELECTOR, “button[type=’submit’]”))).click()
- 我们完成了 Instagram 登录。现在,我们可以打开我们将在其上执行滚动的目标配置文件 URL。
driver.get("https://www.instagram.com/geeks_for_geeks/followers/")
在这里,在这个实际实现中,我们使用geeksforgeeks追随者弹出窗口进行滚动。
- 使用find_element_by_partial_link_text方法单击关注者按钮。
- 使用 XPATH 从网页中查找弹出窗口元素。在弹出窗口中,我们将使用 while 循环来执行滚动,直到程序到达最后一个关注者。这就是为什么我们始终将循环视为 TRUE。
- 最后,一旦我们完成了我们的任务。我们将使用 quit() 方法关闭资源。
下面是完整的实现:
蟒蛇3
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.wait import WebDriverWait
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.support import expected_conditions as EC
from webdriver_manager.microsoft import EdgeChromiumDriverManager
driver = webdriver.Chrome(ChromeDriverManager().install())
# open the webpage
driver.get("http://www.instagram.com")
# target username
username = WebDriverWait(
driver, 10).until(EC.element_to_be_clickable(
(By.CSS_SELECTOR, "input[name='username']")))
# target Password
password = WebDriverWait(
driver, 10).until(EC.element_to_be_clickable(
(By.CSS_SELECTOR, "input[name='password']")))
# enter username and password
username.clear()
username.send_keys("")
password.clear()
password.send_keys("")
# target the login button and click it
button = WebDriverWait(
driver, 2).until(EC.element_to_be_clickable(
(By.CSS_SELECTOR, "button[type='submit']"))).click()
time.sleep(5)
driver.get("https://www.instagram.com/geeks_for_geeks/followers/")
driver.find_element_by_partial_link_text("follower").click()
pop_up_window = WebDriverWait(
driver, 2).until(EC.element_to_be_clickable(
(By.XPATH, "//div[@class='isgrP']")))
# Scroll till Followers list is there
while True:
driver.execute_script(
'arguments[0].scrollTop = arguments[0].scrollTop + arguments[0].offsetHeight;',
pop_up_window)
time.sleep(1)
driver.quit()
输出: