Как использовать прокси в Инстаграпи
Я почти новичок в Python. Я пишу инстаграм-бота, чтобы делиться постами моей страницы с людьми в инстаграме. Но в большинстве случаев инстаграм меня ограничивает.
Мой первый вопрос — как использовать прокси в инстаграпи, чтобы обойти ограничения. Код ниже — это то, что документация Instagrapi разместила на своей странице GitHub.
from instagrapi import Client
cl = Client()
before_ip = cl._send_public_request("https://api.ipify.org/")
cl.set_proxy("http://<api_key>:wifi;ca;;;toronto@proxy.soax.com:9137")
after_ip = cl._send_public_request("https://api.ipify.org/")
print(f"Before: {before_ip}")
print(f"After: {after_ip}")
Но я на самом деле не знаю, как этим пользоваться. В смысле, как мне играть с прокси, пока бот включен и работает? следует ли мне использовать один раз при запуске робота или мне придется сменить прокси-сервер после нескольких выполненных действий? (например, собрать 10 пользователей из инстаграма)
И как в любом из этих случаев должен выглядеть код?
1 ответ
Я ни в коем случае не опытный программист, но, возможно, это вам поможет. Я бы не рекомендовал использовать прокси (во-первых, это не самый безопасный вариант), но, по моему опыту, Instagram все равно пометит вас и может в конечном итоге заблокировать вашу учетную запись.
Посмотрите dump_settings в документации Instagrapi здесь https://adw0rd.github.io/instagrapi/usage-guide/interactions.html.
Таким образом, Instagram «запомнит» вас и не будет слишком часто вас отмечать. Или так кажется. Я все еще ищу надежный способ избежать статуса 429. Возможно, используя модуль времени. Все еще изучаю это.
Вот мой текущий код, если это может помочь:
import os
from instagrapi import Client
client = Client()
if os.path.isfile('C:\Work In Progress\Python Code\IG_bot\dump_settings') == True:
client.load_settings("C:\Work In Progress\Python Code\IG_bot\dump_settings")
print("\n\nDump Settings Already Recorded")
else:
client.dump_settings("C:\Work In Progress\Python Code\IG_bot\dump_settings")
print("\n\nDump Settings Record Created")
client.login(username,password)