Однако при попытке доступа к профилю целевого пользователя я сталкиваюсь с ошибкой «Время ожидания загрузки страницы истекло».
Код
Код: Выделить всё
from selenium import webdriver
from selenium.common.exceptions import NoSuchElementException
from selenium.common.exceptions import NoSuchElementException, TimeoutException
from selenium.webdriver.common.keys import Keys
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
import pandas as pd
def get_user_info(username, driver):
try:
driver.get(f"https://www.instagram.com/{username}/")
WebDriverWait(driver, 20).until(
EC.presence_of_element_located((By.CSS_SELECTOR, "span._ac2a"))
)
followers_str = driver.find_element(By.CSS_SELECTOR, "span._ac2a").text
following_str = driver.find_element(By.CSS_SELECTOR, "span._ac2b").text
followers = int(followers_str.replace(',', ''))
following = int(following_str.replace(',', ''))
return followers, following
except NoSuchElementException:
print(f"Follower/Following count elements not found for {username}.")
return None, None
except TimeoutException:
print(f"Timed out while waiting for page to load for {username}.")
return None, None
except ConnectionError:
print(f"Connection error while fetching data for {username}.")
return None, None
except Exception as e:
print(f"Error fetching info for {username}: {e}")
return None, None
def login_to_instagram(username, password, driver):
try:
driver.get("https://www.instagram.com/accounts/login/")
WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.NAME, "username"))
)
username_field = driver.find_element(By.NAME, "username")
username_field.send_keys(username)
password_field = driver.find_element(By.NAME, "password")
password_field.send_keys(password)
password_field.send_keys(Keys.RETURN)
time.sleep(5)
except Exception as e:
print(f"Login failed: {e}")
def main():
instagram_username = "Abcd"
instagram_password = "XXXX"
target_username = "Trg_user_id"
driver = webdriver.Chrome()
try:
login_to_instagram(instagram_username, instagram_password, driver)
followers, following = get_user_info(target_username, driver)
data = {'Username': [target_username], 'Followers': [followers], 'Following': [following]}
df = pd.DataFrame(data)
df.to_excel('instagram_user_data.xlsx', index=False)
print("Data saved to instagram_user_data.xlsx")
finally:
driver.quit()
if __name__ == "__main__":
main()
DevTools прослушивает ws://127.0.0.1:55191/devtools/browser/971e8f47 -67b5-46d5-93a8-e4c625548d1e
Создан делегат TensorFlow Lite XNNPACK для ЦП.
Время ожидания загрузки страницы для Trg_user_id истекло.
Данные сохранены в instagram_user_data.xlsx
Я пробовал:
Увеличено время ожидания в WebDriverWait.
Проверка проблем с сетью и стабильности сервера Instagram.
Я подозреваю, что проблема может быть связана с ограничением скорости Instagram или изменениями в структуре их веб-сайта. Мы будем очень признательны за любые идеи или предложения о том, как решить эту проблему с тайм-аутом.
Подробнее здесь: https://stackoverflow.com/questions/793 ... g-and-stor