[PYTHON] Crawl Follower für ein Konto bei Instagram

Überblick

Durchsuchen Sie alle Follower-Informationen für ein Konto bei Instagram. Die offizielle Instagram-API verfügt über eine API zum Abrufen Ihrer Follower-Liste, jedoch keine API zum Abrufen der Follower-Liste eines anderen Benutzers. Also habe ich dieses Mal ein Programm erstellt, um die Follower-Informationen eines Kontos zu crawlen.

Voraussetzungen

Voraussetzungen für die Verwendung dieses Programms

  1. Haben Sie einen Instagram-Account
  2. Kennen Sie die Benutzer-ID des Kontos, nach dem Sie suchen möchten
  3. Wissen Sie, wie Ihre Abfrage-ID lautet

Wie Sie 2 und 3 überprüfen, wird später beschrieben.

Programm

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)

Kennen Sie die Benutzer-ID des Kontos, nach dem Sie suchen möchten

Es ist ziemlich einfach, die Benutzer-ID eines Kontos zu ermitteln. Sie finden sie normalerweise über die Instagram-Benutzeroberfläche. Beispiel: Kennen Sie die Benutzer-ID von taylorswift Schritt 1: Öffnen Sie Chrom Schritt 2: Öffnen Sie das Entwicklertool Schritt 3: Wechseln Sie zur Registerkarte Netzwerk Schritt 4: Gehen Sie zu https://www.instagram.com/taylorswift/ Schritt 5: Klicken / Abfragen bei ↓ Screenshot 2017-04-11 20.26.15.png

Schritt 6: Gehen Sie zur Registerkarte Antwort und suchen Sie nach dem Schlüssel "Eigentümer". スクリーンショット 2017-04-11 20.28.26.png

Schritt 7: Die Zeichenfolge neben dem Schlüssel "id" in "owner" ist die Benutzer-ID

Kennen Sie Ihre Abfrage-ID

Schritt 1: Öffnen Sie Chrom Schritt 2: Melden Sie sich unter https://www.instagram.com/ an. Schritt 3: Gehen Sie zu https://www.instagram.com/taylorswift/ Schritt 4: Öffnen Sie das Entwicklertool Schritt 5: Öffnen Sie das Netzwerk Schritt 6: Klicken Sie auf Taylor Followers Schritt 7: Der? Query_id-Teil der Anfrage in ↓ ist Ihre Abfrage-ID (tatsächlich im versteckten Teil). query_id.png

Was ich über Query ID gelernt habe

・ Es ist immer dasselbe, auch wenn Sie sich erneut anmelden ・ Wenn Sie Ihr Konto ändern, ist dies anders. ・ Sie können diese Dinge nicht über die offizielle Instagram-API herunterladen. ・ Fazit: Ich bin mir nicht sicher, was es ist, aber eine ID, die eine Eins-zu-Eins-Beziehung zum Konto hat

Das ist es

Recommended Posts

Crawl Follower für ein Konto bei Instagram
Erstellen einer Anaconda-Umgebung für Python mit pyenv
Verschiedene Befehle zum Erstellen einer Umgebung mit Apache
Versuchen Sie, mit VisualStudioCode eine Umgebung für MayaPython zu erstellen
Holen Sie sich AccessToken für das Dienstkonto mit dem Firebase Admin Python SDK
Verfahren zum Erstellen einer Anwendung mit Django mit Pycharm ~ Vorbereitung ~
[Linux] WSL2 Erstellen Sie mit Ubuntu 20.04 eine Umgebung für laravel7
Erstellen einer Umgebung für die Verarbeitung natürlicher Sprache mit Python
Erstellen Sie mit AirtestIDE eine Umgebung für die Testautomatisierung (Tipps)
Neuerstellung der Umgebung für maschinelles Lernen mit Miniconda (Windows-Version)
Erstellen Sie ein untergeordnetes Konto für die Verbindung mit Stripe in Python
Erstellen Sie mit Docker eine Umgebung für "Deep Learning von Grund auf neu"
Drehen Sie ein Array von Zeichenfolgen mit einer for-Anweisung (Python3).