Automatisation Instagram

Contenu

  • 1. Autorisation





    • 1.1. Une analyse





    • 1.2. Problème





    • 1.3. Premier trou de sécurité





    • 1.4. La solution au problème et la deuxième faille de sécurité





  • 2. Collecte de données





    • 2.1. Données sans pagination





    • 2.2. Données paginées





  • 3. Résultat





Au travail, je suis tombé sur une tâche intéressante  d'automatisation d'Instagram , à savoir qu'il fallait juste tenir un dessin. Il y a suffisamment de services pour organiser cette aventure, il y en a même des gratuits. Mais il y avait des conditions supplémentaires (lire premium), en plus, je voulais vraiment voir par moi-même ce qu'il y avait à l'intérieur de cet instagram populaire et peut-être acquérir de l'expérience dans la construction d'une API.





Tout d'abord, je suis allé voir ce que disait Internet. La lecture des docks officiels sur l'API Instagram a clairement montré que les propriétaires ne souhaitaient pas donner accès à une automatisation illimitée, vous pouvez automatiser le travail avec votre compte dans la version de base, mais cela ne correspondait pas à ma tâche, et la version «entreprise» de l'API nécessitait une vérification de l'entreprise, ce qui est naturel Cela ne me va pas. (Peut-être que quelque chose a déjà changé ...)





Ensuite, je suis allé voir ce que disait Internet à propos de l'utilisation de l'API sur le site Web Instagram. Tout était rose et n'était pas de bon augure pour les problèmes. Il y avait même des projets php sur github qui fournissaient des API pour l'automatisation jusqu'à la publication. Des articles sur Habré parlaient de la facilité d'automatisation. Beaucoup de sources avaient une fraîcheur normale (quelques mois, voire des semaines). Toutefois …





Autorisation

(fiddler + waterfox) instagram . . .





, .





Demander dans la console Firefox pourquoi il y a un problème avec Access-Control-Allow-Origin Je ne sais pas
Firefox, Access-Control-Allow-Origin

- POST https://www.instagram.com/accounts/login/ajax/ .  enc_password -  ,  : ( , ) :





  •  (PWDINSTAGRAMBROWSER)





  •  (10)





  •  (unixtime 1591030811)









 unixtime , .





, , . github nodejs. , .





    . , instagram .  ( )    , . .





,   ,     js.   js ( )  …  ( ),   ,   .





  instagram php,     js.  ( xhr , fiddler)  php . -     .





… . 7 - ,   - ( , ip),   ).





nodejs  puppeteer  . :)





,   ,  ( )   . ,   ( )  . -   . , ,    , :)





,  ( ):





php node.js , node.js , , , .









.   . html :





Afficher la réponse html via un navigateur n'est pas très pratique, vous pouvez simplement la copier et la coller dans un éditeur familier et considérer ce dont vous avez besoin là-bas
html ,





:)





 . . Instagram API graphql (- rust-full ). .





:





  • query_hash - :





    •  - d5d763b1e2acf209d62d22d184488e57





    •  - bc3296d1ce80a24b1b6e40b1e72903f5





    •  - c76146de99bb02f6415203be841dd25a





    •  - ff260833edf142911047af6024eb634a





  • variables - json (urlencode ), , , ,    :





    • first -  ( 50 50)





    • after -  ffirst. fafter  , ,  ( null)





:





Oui, usleep est nécessaire, sinon l'accès par cette demande avec un accès fréquent sera limité (même si vous essayez de l'utiliser en tant qu'utilisateur régulier via la version web).  Cela est particulièrement vrai pour de grandes quantités de données.  Par exemple, pour assembler ~ 300 likes et ~ 1000 commentaires, une telle pause est tout à fait normale, mais lors de l'assemblage de ~ 5000 commentaires, mon faux compte a été banni plus d'une fois, c'est pourquoi j'ai dû augmenter la pause entre les demandes à 3-5 secondes.  Et puis dans certains cas (apparemment tout dépendait des stars), Instagram a interdit cette demande.
, usleep , ( ). . ~300 ~1000 , , ~5000 , - 3-5 . ( ), .

  API  20 .





 Je suis déçu de la qualité de l'  API instagram dans la version Web du site, je ne pensais pas que ce serait si médiocre, il semble que tout soit tordu au maximum lors de la génération de données pour l'autorisation  , mais ensuite tout est abaissé et un grand trou de sécurité se forme - j'ai  volé des cookies avec des en-têtes et j'ai eu accès .





Instagram m'a fait transpirer et ressentir diverses émotions liées à l'utilisation de l'API, mais l'objectif a été pleinement atteint. Auteur: Vitaly Buturlin








All Articles