[PYTHON] Crawl Follower pour un compte avec Instagram

Aperçu

Explorez toutes les informations d'abonné pour un compte avec Instagram. L'API officielle d'Instagram a une API pour obtenir votre liste d'abonnés, mais aucune API pour obtenir la liste d'abonnés de quelqu'un d'autre. Donc, cette fois, j'ai créé un programme pour explorer les informations d'abonné de n'importe quel compte.

Conditions préalables

Conditions préalables à l'utilisation de ce programme

  1. Avoir un compte Instagram
  2. Connaissez l'ID utilisateur du compte que vous souhaitez rechercher
  3. Sachez quel est votre ID de requête

La manière de vérifier 2 et 3 sera décrite plus loin.

programme

crawl_followers.py



import requests
import json

# Your Account info
def get_user_info():
    return {
            "username": "your_account",
            "password": "your_password"
            }

# HTTP Headers to login
def login_http_headers():
    ua = "".join(["Mozilla/5.0 (Windows NT 6.1; WOW64) ",
                  "AppleWebKit/537.36 (KHTML, like Gecko) ",
                  "Chrome/56.0.2924.87 Safari/537.36"])
    return {
            "user-agent": ua,
            "referer":"https://www.instagram.com/",
            "x-csrftoken":"null",
            "cookie":"sessionid=null; csrftoken=null"
            }

# login session
def logined_session():
    session = requests.Session()
    login_headers = login_http_headers()
    user_info = get_user_info()
    login_url = "https://www.instagram.com/accounts/login/ajax/"
    session.post(login_url, data=user_info, headers=login_headers)
    return session

# a fetch (max 3000 followers)
def fetch_followers(session, user_id, query_id, after=None):
    variables = {
        "id": user_id,
        "first": 3000,
    }
    if after:
        variables["after"] = after

    followers_url = "".join(["https://www.instagram.com/graphql/query/?",
                             "query_id=" + query_id + "&",
                             "variables=" + json.dumps(variables)])
    # HTTP Request
    followers = session.get(followers_url)
    dic = json.loads(followers.text)
    edge_followed_by = dic["data"]["user"]["edge_followed_by"]

    count = edge_followed_by["count"] # number of followers
    after = edge_followed_by["page_info"]["end_cursor"] # next pagination
    has_next = edge_followed_by["page_info"]["has_next_page"]
    return {
            "count": count,
            "after": after,
            "has_next":  has_next,
            "followers": edge_followed_by["edges"]
            }

def fetch_all_followers(session, user_id, query_id):
    after     = None # pagination
    followers = []  

    while(True):
        fetched_followers = fetch_followers(session, user_id, query_id, after)
        followers += fetched_followers["followers"]

        if fetched_followers["has_next"]:
            after = fetched_followers["after"]
        else:
            return {
                    "count": fetched_followers["count"],
                    "followers": followers
                    }

def main(user_id, query_id):
    session = logined_session()
    return fetch_all_followers(session, user_id, query_id)

if __name__ == '__main__':
    user_id  = "3425874156" # user id to search 
    query_id = "" # your query id
    main(user_id, query_id)

Connaître l'ID utilisateur du compte que vous souhaitez rechercher

Il est assez facile de connaître l'identifiant d'un compte. Vous pouvez généralement le trouver à partir de l'interface graphique d'Instagram. Exemple: connaître l'ID utilisateur de taylorswift Étape 1: Ouvrez Chrome Étape 2: Ouvrez l'outil de développement Étape 3: Accédez à l'onglet Réseau Étape 4: accédez à https://www.instagram.com/taylorswift/ Étape 5: Cliquez / interrogez sur ↓ Capture d'écran 2017-04-11 20.26.15.png

Étape 6: Accédez à l'onglet Réponse et recherchez la clé «propriétaire» スクリーンショット 2017-04-11 20.28.26.png

Étape 7: La chaîne à côté de la clé «id» dans «owner» est l'ID utilisateur

Connaissez votre identifiant de requête

Étape 1: Ouvrez Chrome Étape 2: connectez-vous depuis https://www.instagram.com/ Étape 3: accédez à https://www.instagram.com/taylorswift/ Étape 4: Ouvrez l'outil de développement Étape 5: Réseau ouvert Étape 6: Cliquez sur Taylor Followers Étape 7: La partie? Query_id de la requête dans ↓ est votre identifiant de requête (en fait dans la partie cachée) query_id.png

Ce que j'ai appris sur l'ID de requête

・ C'est toujours le même même si vous vous reconnectez ・ Si vous changez de compte, ce sera différent. ・ Je ne peux pas obtenir ces choses de l'API officielle d'Instagram. ・ Conclusion, je ne suis pas sûr de ce que c'est, mais une pièce d'identité qui a une relation individuelle avec le compte

C'est tout

Recommended Posts

Crawl Follower pour un compte avec Instagram
Construire un environnement Anaconda pour Python avec pyenv
Diverses commandes pour créer un environnement avec Apache
Essayez de créer un environnement pour MayaPython avec VisualStudioCode
Obtenez AccessToken pour le compte de service avec le SDK Firebase Admin Python
Procédure de création d'une application avec Django avec Pycharm ~ Préparation ~
[Linux] WSL2 Créer un environnement pour laravel7 avec Ubuntu 20.04
Créer un environnement pour le traitement du langage naturel avec Python
Créez un environnement pour l'automatisation des tests avec AirtestIDE (Astuces)
Reconstruction de l'environnement pour l'apprentissage automatique avec Miniconda (version Windows)
Créer un compte enfant de connect with Stripe en Python
Créez un environnement pour "Deep Learning from scratch" avec Docker
Tourner un tableau de chaînes avec une instruction for (Python3)