Instagramの自動化

コンテンツ

  • 1.承認





    • 1.1。分析





    • 1.2。問題





    • 1.3。最初のセキュリティホール





    • 1.4。問題の解決策と2番目のセキュリティホール





  • 2.データ収集





  • 3.結果





職場で、Instagramを自動化するという興味深い タスクに出くわしました。つまり、図面を保持するだけで済みました。このベンチャーを組織するのに十分なサービスがあり、無料のものもあります。しかし、追加の(プレミアムを読む)条件がありました。さらに、この人気のあるInstagramの内部に何があるのか​​を自分で確認し、APIの構築の経験を積むことを本当に望んでいました。





まず、インターネットが何を言っているのか見に行きました。instagram APIの公式ドックを読むと、所有者が無制限の自動化へのアクセスを許可したくないことが明らかになりました。基本バージョンでアカウントを使用して作業を自動化できますが、これは私のタスクに適合しませんでした。APIの「ビジネス」バージョンでは、会社の確認が必要でした。これは当然のことです。それは私には合いません。(たぶん何かがすでに変わっています...)





次に、InstagramのWebサイトでAPIの操作についてインターネットが何を言っているかを見に行きました。すべてがバラ色で、問題の前兆にはなりませんでした。投稿まで自動化するためのAPIを提供するphpプロジェクトもgithubにありました。Habréに関する記事では、自動化のしやすさについて説明しています。泉の多くは通常の鮮度でした(数ヶ月、あるいは数週間)。しかしながら …





承認

(fiddler + waterfox) instagram . . .





, .





わからないAccess-Control-Allow-Originに問題がある理由をFirefoxコンソールでリクエストする
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 :





ブラウザでhtml応答を表示するのはあまり便利ではありません。コピーして使い慣れたエディタに貼り付け、そこで必要なものを検討するだけです。
html ,





:)





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





:





  • query_hash - :





    •  - d5d763b1e2acf209d62d22d184488e57





    •  - bc3296d1ce80a24b1b6e40b1e72903f5





    •  - c76146de99bb02f6415203be841dd25a





    •  - ff260833edf142911047af6024eb634a





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





    • first -  ( 50 50)





    • after -  ffirst. fafter  , ,  ( null)





:





はい、usleepが必要です。そうしないと、頻繁にアクセスするこのリクエストによるアクセスが制限されます(Webバージョンを介して通常のユーザーとして使用しようとしても)。 これは、特に大量のデータに当てはまります。 たとえば、〜300のいいねと〜1000のコメントをアセンブルする場合、このような一時停止はごく普通のことですが、〜5000のコメントのアセンブル中に、偽のアカウントが複数回禁止されたため、リクエスト間の一時停止を3〜5秒に増やす必要がありました。 そして、場合によっては(明らかにすべてが星に依存していた)、Instagramはこのリクエストの禁止を発行しました。
, usleep , ( ). . ~300 ~1000 , , ~5000 , - 3-5 . ( ), .

  API  20 .





 ウェブ版のサイトinstagramAPI品質に 失望しています。それほど平凡だとは思いませんでした。承認用のデータを生成する際にすべてが最大限ねじれているようです が、すべてが低下し、大きなセキュリティホールが形成されますヘッダー付きのCookieを 盗んでアクセスしました





InstagramはAPIを使って汗を流し、さまざまな感情を体験させてくれましたが、目標は完全に達成されました。著者:Vitaly Buturlin








All Articles