Automatización de Instagram

Contenido

  • 1. Autorización





    • 1.1. Análisis





    • 1.2. Problema





    • 1.3. Primer agujero de seguridad





    • 1.4. La solución al problema y el segundo agujero de seguridad





  • 2. Recopilación de datos





    • 2.1. Datos sin paginación





    • 2.2. Datos paginados





  • 3. Resultado





En el trabajo, me encontré con una tarea interesante  de automatizar Instagram , es decir, solo era necesario realizar un dibujo. Hay suficientes servicios para organizar este emprendimiento, incluso los hay gratuitos. Pero había condiciones adicionales (leer premium), además, realmente quería ver por mí mismo qué había dentro de este popular Instagram y tal vez ganar experiencia en la construcción de una API.





En primer lugar, fui a ver qué decía Internet. La lectura de los muelles oficiales en la API de instagram dejó en claro que los propietarios no quieren dar acceso a la automatización ilimitada, puede automatizar el trabajo con su cuenta en la versión básica, pero esto no se ajustaba a mi tarea, y la versión "empresarial" de la API requería la verificación de la empresa, lo cual es natural. No va conmigo. (Quizás algo ya haya cambiado ...)





Luego fui a ver qué decía Internet sobre trabajar con la API en el sitio web de Instagram. Todo era color de rosa y no presagiaba nada bueno para los problemas. Incluso hubo proyectos php en github que proporcionaron API para la automatización hasta la publicación. Los artículos sobre Habré hablaron sobre la facilidad de la automatización. Muchos de los manantiales tenían un frescor normal (un par de meses o incluso semanas). Sin embargo …





Autorización

(fiddler + waterfox) instagram . . .





, .





Solicitar en la consola de Firefox por qué hay un problema con Access-Control-Allow-Origin no lo sé
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 :





Ver la respuesta html a través de un navegador no es muy conveniente, puede simplemente copiarla y pegarla en un editor familiar y considerar lo que necesita
html ,





:)





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





:





  • query_hash - :





    •  - d5d763b1e2acf209d62d22d184488e57





    •  - bc3296d1ce80a24b1b6e40b1e72903f5





    •  - c76146de99bb02f6415203be841dd25a





    •  - ff260833edf142911047af6024eb634a





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





    • first -  ( 50 50)





    • after -  ffirst. fafter  , ,  ( null)





:





Sí, se requiere usleep; de lo contrario, el acceso mediante esta solicitud con acceso frecuente será limitado (incluso si intenta utilizarlo como usuario habitual a través de la versión web).  Esto es especialmente cierto para grandes cantidades de datos.  Por ejemplo, para reunir ~ 300 me gusta y ~ 1000 comentarios, esta pausa es bastante normal, pero durante el ensamblaje de ~ 5000 comentarios, mi cuenta falsa fue prohibida más de una vez, lo que hizo necesario aumentar la pausa entre solicitudes a 3-5 segundos.  Y luego, en algunos casos (aparentemente todo dependía de las estrellas), Instagram emitió una prohibición para esta solicitud.
, usleep , ( ). . ~300 ~1000 , , ~5000 , - 3-5 . ( ), .

  API  20 .





 Estoy decepcionado con la calidad de la  API de instagram en la versión web del sitio, no pensé que sería tan mediocre, parece que todo se tuerce al máximo en la generación de datos para autorización  , pero luego todo se baja y se forma un gran agujero de seguridad - robé cookies con encabezados y obtuve  acceso .





Instagram me hizo sudar y experimentar varias emociones al usar la API, pero el objetivo se logró por completo. Autor: Vitaly Buturlin








All Articles