• На форуме работает ручное одобрение пользователей. Это значит, что, если Ваша причина регистрации не соответствует тематике форума, а также Вы используете временную почту, Ваша учётная запись будет отклонена без возможности повторной регистрации. В дальнейшем - пожизненная блокировка обоих аккаунтов за создание мультиаккаунта.

Python Как написать парсер инстаграм

Vendetta

Главный мститель
Автор публикации
Команда форума
Админ
775
23
18
Монетки
2 377,95
Всем привет, я понимаю что мой код не очень хорош, да и этот парсер можно доделать, но я остановился на этом.
Делался парсер просто так, чтобы было.

И дa, мы будем использовать запрос в котором будем получать json.

И так начнём, первое что нам нужно сделать это же конечно установить библиотеки использованные в нашем парсере.
Python:
pip install requests
pip install fake-useragent
pip install colorama

Если кто-то не знает, то, (цитирую из документации) requests - "Requests - это простая, но элегантная HTTP-библиотека".
fake-useragent - Современный простой пользовательский агент-фейкер с реальной базой данных. С помощью этой библиотеки мы будем менять свой "user-agent"
colorama - Обеспечивает работу управляющих символов ANSI (для создания цветного текста терминала и позиционирования курсора) под MS Windows. (Для красоты)
Перейдём к коду, первое что нам нужно сделать это конечно же импортирование наших библиотек.

Python:
import requests
import fake_useragent
from colorama import init
from colorama import Fore

Дальше подготовка к парсингу.

Python:
def main():
    init(autoreset=True) # Инициализируем colorama с autoreset'ом

    user = fake_useragent.UserAgent().random # Создаём переменную user и суём туда рандомный user-agent.
    header = {'user-agent': user} # В заголовок суём наш user-agent

Теперь приступаем к самому парсеру
Python:
    response = requests.get(f'https://www.instagram.com/zuck/?__a=1', headers=header).json() # С помощью requests делаем запрос get, обратите ВНИМАНИЕ что в конце стоит .json()
 
    # Добавим print username'a
    username = response['graphql']['user']['username'] # С помощью response мы получаем данные json ['username']
    print(f"Username - {username}") # Ну и выводим

    # Добавим print имени в профиле
    name = response['graphql']['user']['full_name']
    print(f"Name - {name}")

    # Добавим print биографии если она есть у пользователя
    biography = response['graphql']['user']['biography']

    if biography == "": # Если в биографии ничего не написано
        print("Biography - " + Fore.RED + "User haven't biography")
    else: # Если в биографии есть какой либо текст
        print(f"Biography - {biography}")

    # Добавим print подписчиков
    followers = response['graphql']['user']['edge_followed_by']['count']
    followers = str(followers)
    print("Followers - " + followers)

    # Добавим print подписки
    following = response['graphql']['user']['edge_follow']['count']
    following = str(following)
    print("Following - " + following)

    # Добавляем print приватный аккаунт или же нет
    private_account = response['graphql']['user']['is_private']

    if private_account == True: # Тут думаю и так всем понятно
        print("Account - " + Fore.RED + "Private Account")
    else:
        print("Account - " + Fore.LIGHTGREEN_EX + "Open Account")

    # Добавляем print верифицированный ли аккаунт?
    verified_account = response['graphql']['user']['is_verified']

    if verified_account == True: # Тут думаю тоже
        print("Account - " + Fore.LIGHTCYAN_EX + "Verified")
    else:
        print("Account - " + Fore.RED + "Not Verified")

    print("\n")

if __name__ == "__main__":
    main()


А кому лень было всё читать и он зашёл просто пастить то вот

Python:
import requests
import fake_useragent
from colorama import init
from colorama import Fore

def main():
    init(autoreset=True)

    user = fake_useragent.UserAgent().random
    header = {'user-agent': user}


    nickname = input("Enter nickname - ")

    response = requests.get(f'https://www.instagram.com/{nickname}/?__a=1', headers=header).json()

    print("\n")

    account_url = f'https://www.instagram.com/{nickname}'
    print(account_url)

    username = response['graphql']['user']['username']
    print(f"Username - {username}")

    name = response['graphql']['user']['full_name']
    print(f"Name - {name}")

    biography = response['graphql']['user']['biography']

    if biography == "":
        print("Biography - " + Fore.RED + "User haven't biography")
    else:
        print(f"Biography - {biography}")

    followers = response['graphql']['user']['edge_followed_by']['count']
    followers = str(followers)
    print("Followers - " + followers)

    following = response['graphql']['user']['edge_follow']['count']
    following = str(following)
    print("Following - " + following)


    private_account = response['graphql']['user']['is_private']

    if private_account == True:
        print("Account - " + Fore.RED + "Private Account")
    else:
        print("Account - " + Fore.LIGHTGREEN_EX + "Open Account")


    verified_account = response['graphql']['user']['is_verified']

    if verified_account == True:
        print("Account - " + Fore.LIGHTCYAN_EX + "Verified")
    else:
        print("Account - " + Fore.RED + "Not Verified")

    print("\n")

if __name__ == "__main__":
    main()


автор: coder2000
 

Похожие темы 🔥