Otomatisasi Instagram

Kandungan

  • 1. Otorisasi





    • 1.1. Analisis





    • 1.2. Masalah





    • 1.3. Lubang keamanan pertama





    • 1.4. Solusi untuk masalah dan lubang keamanan kedua





  • 2. Pengumpulan data





    • 2.1. Data tanpa pagination





    • 2.2. Data paginasi





  • 3. Hasil





Di tempat kerja, saya menemukan tugas menarik  untuk mengotomatiskan Instagram , yaitu hanya perlu mengadakan gambar. Ada cukup banyak layanan untuk menyelenggarakan usaha ini, bahkan ada yang gratis. Tapi ada ketentuan tambahan (baca premium), selain itu, saya sangat ingin melihat sendiri apa yang ada di dalam Instagram populer ini dan mungkin mendapatkan pengalaman dalam membangun API.





Pertama-tama, saya pergi untuk melihat apa yang dikatakan Internet. Membaca dok resmi di Instagram API memperjelas bahwa pemilik tidak ingin memberikan akses ke otomatisasi tanpa batas, Anda dapat mengotomatiskan pekerjaan dengan akun Anda dalam versi dasar, tetapi ini tidak sesuai dengan tugas saya, dan versi "bisnis" dari API memerlukan verifikasi perusahaan, yang wajar itu tidak cocok untukku. (Mungkin sesuatu telah berubah ...)





Kemudian saya pergi untuk melihat apa yang dikatakan Internet tentang bekerja dengan API di situs web Instagram. Semuanya cerah dan bukan pertanda baik untuk masalah. Bahkan ada proyek php di github yang menyediakan API untuk otomatisasi hingga pengeposan. Artikel tentang Habré berbicara tentang kemudahan otomatisasi. Banyak mata air memiliki kesegaran normal (beberapa bulan, atau bahkan berminggu-minggu). Namun…





Otorisasi

(fiddler + waterfox) instagram . . .





, .





Meminta di konsol Firefox mengapa ada masalah dengan Access-Control-Allow-Origin Saya tidak tahu
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 :





Melihat respon html melalui browser sangat tidak nyaman, Anda cukup menyalin dan menempelkannya ke editor yang sudah dikenal dan mempertimbangkan apa yang Anda butuhkan di sana
html ,





:)





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





:





  • query_hash - :





    •  - d5d763b1e2acf209d62d22d184488e57





    •  - bc3296d1ce80a24b1b6e40b1e72903f5





    •  - c76146de99bb02f6415203be841dd25a





    •  - ff260833edf142911047af6024eb634a





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





    • first -  ( 50 50)





    • after -  ffirst. fafter  , ,  ( null)





:





Ya, usleep diperlukan, jika tidak akses oleh permintaan ini dengan akses yang sering akan dibatasi (bahkan jika Anda mencoba menggunakannya sebagai pengguna biasa melalui versi web).  Ini terutama berlaku untuk data dalam jumlah besar.  Misalnya, untuk mengumpulkan ~ 300 suka dan ~ 1000 komentar, jeda seperti itu cukup normal, tetapi selama perakitan ~ 5000 komentar, akun palsu saya diblokir lebih dari sekali, itulah sebabnya saya harus menambah jeda antara permintaan menjadi 3-5 detik.  Dan kemudian dalam beberapa kasus (tampaknya semuanya tergantung pada bintang), Instagram mengeluarkan larangan untuk permintaan ini.
, usleep , ( ). . ~300 ~1000 , , ~5000 , - 3-5 . ( ), .

  API  20 .





 Saya kecewa dengan kualitas  API Instagram di versi web situs, saya tidak berpikir itu akan begitu biasa-biasa saja, tampaknya semuanya dipelintir secara maksimal untuk menghasilkan data untuk otorisasi  , tetapi kemudian semuanya diturunkan dan lubang keamanan besar terbentuk - Saya  mencuri cookie dengan tajuk dan mendapat akses .





Instagram membuat saya berkeringat dan mengalami berbagai emosi dari penggunaan API, tetapi tujuannya tercapai sepenuhnya. Penulis: Vitaly Buturlin








All Articles