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 für die Verwendung dieses Programms
Wie Sie 2 und 3 überprüfen, wird später beschrieben.
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)
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 ↓
Schritt 6: Gehen Sie zur Registerkarte Antwort und suchen Sie nach dem Schlüssel "Eigentümer".
Schritt 7: Die Zeichenfolge neben dem Schlüssel "id" in "owner" ist die Benutzer-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).
・ 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
Recommended Posts