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 à l'utilisation de ce programme
La manière de vérifier 2 et 3 sera décrite plus loin.
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)
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 ↓
Étape 6: Accédez à l'onglet Réponse et recherchez la clé «propriétaire»
Étape 7: La chaîne à côté de la clé «id» dans «owner» est l'ID utilisateur
É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)
・ 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
Recommended Posts