Webスクレイピングには、多くの場合、Webサイトからデータを抽出することが含まれますが、多くの場合、挑戦的な場合があります。必要なデータは、Webサイトで使用されている難読化技術のために直接アクセスできない場合があります。
JavaScript Obfuscation は、特に、JavaScriptを使用してスクレイピングプロセスをより困難にするために使用される方法です。
この記事では、JavaScript Deobfuscation、Webスクレイピングで重要な理由、およびそれを処理する方法について説明します。
について説明します。javascript obfuscation は、人間または自動化されたツールによってコードをより困難にするための手法です。多くの場合、WebサイトはJavaScriptを難読化してデータを保護したり、Webスクレイピングの試みを妨げたりします。
変数名と関数名の変更:変数と関数名は、A1、B2などのランダム文字列に変更され、目的を理解するのが難しくなります。
エンコードデータ:文字列、URL、または機密データは、base64またはその他のエンコードメソッドを使用して暗号化またはエンコードされます。
:コード実行の順序を変更して、プログラムのロジックとフローに従うことを難しくすることができます。
dead code insertionminification :読みやすさを低下させ、コードサイズを縮小するために不必要な両方のホワイトスペースとコメントが削除されます。
関数ラッピングと間接:重要な関数は複数のレイヤーに包まれているか、間接的な呼び出しで実行されて複雑さを追加し、真の目的を隠します。
元のJSコード: let productprice = 29.99; let productname = "wireless mouse"; 関数displayproductinfo(){ console.log( "製品名:" productName); console.log( "price:$" productprice); } displayproductinfo();
var _0x1a2b3c = ["\ x57 \ x69 \ x72 \ x65 \ x6c \ x65 \ x73 \ x73 \ x20 \ x4d \ x6f \ x75 \ x73 \ x65"、 "\ x4c \ x65 \ x74 \ x20 \ x70 \ x72 \ x6f \ x64 \ x75 \ x63 \ x74 \ x50 \ x72 \ x69 \ x63 \ x65"、 "\ x24"]; _0x4c3b1a = 29.99とします。 _0x6d24f5 = "wireless mouse"とします。 関数_0x44a5bc(){ コンソール[_0x1a2b3c [1]](_ 0x1a2b3c [0] _0x6d24f5); コンソール[_0x1a2b3c [1]](_ 0x1a2b3c [2] _0x4c3b1a); } _0x44a5bc();
let productPrice = 29.99; let productName = "Wireless Mouse"; function displayProductInfo() { console.log("Product Name: " productName); console.log("Price: $" productPrice); } displayProductInfo();
var _0x1a2b3c = ["\x57\x69\x72\x65\x6C\x65\x73\x73\x20\x4D\x6F\x75\x73\x65", "\x4C\x65\x74\x20\x70\x72\x6F\x64\x75\x63\x74\x50\x72\x69\x63\x65", "\x24"]; let _0x4c3b1a = 29.99; let _0x6d24f5 = "Wireless Mouse"; function _0x44a5bc() { console[_0x1a2b3c[1]](_0x1a2b3c[0] _0x6d24f5); console[_0x1a2b3c[1]](_0x1a2b3c[2] _0x4c3b1a); } _0x44a5bc();
deobfuscation は不可欠です。これは、多くのWebサイトが削減を防ぐために難読化手法に依存しているためです。これらの防御をバイパスするには、Webスクレーパーが難読化プロセスを逆転させる必要があります。脱骨を除外しないと、スクレーパーは重要な情報を見逃したり、動的要素と適切に対話するのに苦労したりするかもしれません。
スクレイピングのコンテキストでは、JavaScript deobfuscationを理解することで、
ができます。抽出された非表示または動的にロードされたデータ:deobfuscationは、javascript変数、エンコードされた文字列、または製品価格、株式レベル、ユーザーレビューなどの動的に生成されたHTMLに保存されているデータを明らかにするのに役立ちます。
と対話する難読化JavaScriptコード
バイパス防止測定:deobfuscationは、JavaScriptベースのキャプチャ、レートの制限、またはブラウザーフィンガープリントなどのJavaScriptベースのアンチスクラフィングメカニズムを克服し、スクレーパーが人間の行動を模倣し、これらの防御を模倣することを可能にするのに役立ちます。
javascript deobfuscation
自動化されたdeobfuscators :jsdetoxやde4jsなどのツールは、一般的な難読化パターンを検出し、より読みやすいコードに逆転させることでプロセスを自動化するのに役立ちます。 デバッグツール
:Webスクレイピング開発者は、ブラウザ開発者ツールを使用してJavaScriptコードを介して実行することができます。これにより、スクリプトがページを操作する方法やサーバーと通信する方法を追跡するのに役立ちます。
code beautifiers :これらのツールは、より読みやすくするためにコードを形成します。
難読化されたJavaScriptを扱うためのソリューションヘッドレスブラウザー
:PuppeteerやPlaywrightなどのツールは、JavaScriptが多いWebサイトに対処するのに役立ちます。これらのヘッドレスブラウザは、JavaScriptを実行し、スクレーパーが実際のユーザーであるかのようにページと対話することができ、複雑な難読化技術をバイパスするのに役立ちます。CloudFlare Workarounds
:一部のWebサイトは、CloudFlareを使用してスクレイピングから保護します。スクレーパーは、ユーザーエージェントヘッダーを回転させたり、JavaScriptの課題を解決したりすることにより、CloudFlareのアンチボット保護をバイパスできます。最も一般的なのはCloudFlare JSチャレンジです。動的データスクレイピング
:多くのスクレイピングツールは、JavaScriptが多いWebサイトでユーザーの動作を複製するように設計されており、ボタンやドロップダウンなどの要素と対話して動的なコンテンツをロードできるように設計されています。免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3