Поиск по сайту:

Как прокрутить вниз всплывающее окно подписчиков в Instagram с помощью Python


Instagram – это популярная социальная сеть, которая позволяет пользователям общаться и делиться контентом со своими подписчиками. У разработчика может возникнуть необходимость автоматизировать определенные задачи в Instagram, например извлечение данных о подписчиках. Всплывающее окно подписчиков Instagram загружает только ограниченное количество подписчиков одновременно, поэтому пользователям необходимо прокручивать страницу вниз, чтобы просмотреть больше подписчиков. В этой статье мы рассмотрим, как прокручивать всплывающее окно подписчиков в Instagram с помощью Python.

Синтаксис

webdriver.Chrome('path/to/chromedriver

Здесь этот метод используется для создания экземпляра Chrome WebDriver. Для этого необходимо указать путь к исполняемому файлу chromedriver в качестве параметра.

driver.get(url)

Здесь этот метод используется для перехода к указанному URL-адресу в веб-браузере. Он принимает URL-адрес в качестве параметра и загружает соответствующую веб-страницу.

element = driver.find_element_by_name(name)

Здесь этот метод используется для поиска элемента HTML на веб-странице по его атрибуту имени. Он возвращает объект WebElement, представляющий найденный элемент.

element.send_keys(*value)

Здесь этот метод используется для имитации ввода с клавиатуры в поле ввода или элемент. Он принимает входное значение в качестве параметра и вводит его в указанный элемент.

wait = WebDriverWait(driver, timeout)

Здесь этот класс используется для настройки явного ожидания в Selenium. В качестве параметров требуется экземпляр WebDriver и максимальное время ожидания.

Поэтапная реализация

Шаг 1. Импорт и настройка среды: Сначала нам необходимо установить необходимые зависимости, включая Python, селен и соответствующий веб-драйвер, и импортировать эти библиотеки в ваш скрипт Python. Библиотеки можно установить с помощью диспетчера пакетов Python pip. Вы можете импортировать необходимые библиотеки следующим образом:

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
import time

Шаг 2. Инициализация веб-драйвера. Чтобы инициализировать веб-драйвер, вам необходимо создать экземпляр webdriver.Chrome и указать путь к исполняемому файлу драйвера Chrome. Вы можете инициализировать ChromeDriver следующим образом:

from selenium import webdriver

driver = webdriver.Chrome('path/to/chromedriver')

Шаг 3. Перейдите на страницу входа в Instagram. С помощью метода driver.get() вы можете перейти на страницу входа в Instagram. После перехода на страницу найдите поля ввода имени пользователя и пароля, используя метод Selenium find_element_by_name.

# Navigate to Instagram's login page
driver.get('https://www.instagram.com/accounts/login/')

# Wait for the page to load
time.sleep(2)

# Find the username and password input fields, and fill in the login credentials
username_input = driver.find_element_by_name('username')
password_input = driver.find_element_by_name('password')

Шаг 4. Заполнение учетных данных для входа: Когда вы нашли поле ввода имени пользователя и пароля с помощью метода find_element_by_name(), вы можете передать учетные данные для входа в поле ввода, используя метод send_keys() в соответствующем поле ввода.

username_input.send_keys('your_username')  # Replace 'your_username' with your Instagram username
password_input.send_keys('your_password')  # Replace 'your_password' with your Instagram password

Шаг 5. Отправка формы входа: После передачи учетных данных вы можете отправить форму входа, вызвав метод submit() в поле ввода пароля.

# Submit the login form
password_input.submit()

Шаг 6. Переход на страницу профиля пользователя. После успешного входа в систему вы можете использовать метод get() WebDriver для перехода на страницу профиля пользователя. Замените «ваше_имя_пользователя» на свое имя пользователя в Instagram. Вы также можете использовать метод time.sleep(), чтобы дождаться полной загрузки страницы.

# Wait for the login process to complete
time.sleep(5)

# Navigate to the user's profile page
driver.get('https://www.instagram.com/your_username')  # Replace 'your_username' with your Instagram username

# Wait for the profile page to load
time.sleep(2)

Шаг 7. Нажатие кнопки «Подписчики». Вы можете найти кнопку «Подписчики» на странице профиля с помощью метода find_element_by_xpath() и селектора XPath. . Класс WebDriverWait используется для ожидания появления элемента на странице. Затем нажмите кнопку подписчика, используя метод click().

# Find and click on the followers button
followers_button = WebDriverWait(driver, 10).until(
    EC.presence_of_element_located((By.XPATH, '//a[@href="/your_username/followers/"]'))
)  # Replace 'your_username' with your Instagram username
followers_button.click()

Шаг 8. Ожидание загрузки всплывающего окна подписчиков. Мы используем WebDriverWait, чтобы дождаться появления всплывающего окна подписчиков на странице. Затем найдите всплывающее окно подписчиков, используя метод find_element_by_xpath() и селектор XPath.

# Wait for the followers popup to load
followers_popup = WebDriverWait(driver, 10).until(
    EC.presence_of_element_located((By.XPATH, '//div[@class="isgrP"]'))
)

Шаг 9. Прокрутка всплывающего окна подписчиков вниз. Определите сценарий JavaScript для прокрутки всплывающего окна подписчиков вниз. Скрипт устанавливает для свойства элемента ScrollTop его значение ScrollHeight, что прокручивает его до максимальной высоты. Мы используем цикл while для многократного выполнения сценария прокрутки до тех пор, пока не будут загружены новые подписчики. Внутри цикла мы отслеживаем количество подписчиков до и после прокрутки. Если количество подписчиков остается прежним, это означает, что новые подписчики не были загружены, и мы выходим из цикла.

# Scroll down the followers popup
scroll_script = "arguments[0].scrollTop = arguments[0].scrollHeight;"
while True:
    last_count = len(driver.find_elements_by_xpath('//div[@class="isgrP"]//li'))
    driver.execute_script(scroll_script, followers_popup)
    time.sleep(1)  # Add a delay to allow time for the followers to load
    new_count = len(driver.find_elements_by_xpath('//div[@class="isgrP"]//li'))
    if new_count == last_count:
        break  # Exit the loop if no new followers are loaded

Шаг 10. Закрытие веб-браузера:

Call the quit() method on the WebDriver to close the web browser and free system resources.

Выход

Заключение

В этой статье мы обсудили, как мы можем прокручивать всплывающее окно подписчиков в Instagram с помощью Selenium в Python. Используя Python и Selenium WebDriver, мы можем прокручивать всплывающие окна подписчиков в Instagram и эффективно извлекать данные о подписчиках. В этой статье мы обсудили пошаговый процесс и предоставили примеры фрагментов кода, которые помогут вам начать работу.

Статьи по данной тематике: