ページアドレス: http://acm.hdu.edu.cn/showpro...
クロール対象:
これらの数式のコードをクロールしたい場合は、Chrome F12 を押してコードを表示します:
Chrome
F12
ただし、クロールされたコードは次のとおりです:
このコードには正しい数式が表示されません。これらのコードは js によって生成されているようです。これらのコードをクロールする方法。
js
これは MathJax ツールによって解析されます。 数式 p の次の ID が MathJax-Element-X であるスクリプトの HTML コードを探し、その中の内容をコピーし、数式の前後に 2 つの $$ を追加します (前後に 2 つのドル記号があるため、合計 4 つです) 最後に、MathJax を使用して解析します。 上の写真以上には言えません:
まずパケットをキャプチャし、ajax リクエストをキャプチャします。重要なのは、主にいくつかのパラメータを決定するためにリクエストを構築する方法を確認することです。ルーチンは次のとおりです。 1. コンテキストを検索して、関連するパラメータが存在するかどうかを確認します。パラメータがサーバーから返された場合は、そのパラメータを取得するようにサーバーに直接要求します。 3. パラメータの場合は非常に複雑で不規則であるため、パラメータのキーを検索し、暗号化された js を見つけて、パラメータの値を構築して ajax URL を取得する必要があります。それは難しすぎるため、Selenium などの自動化ツールを使用してブラウザを駆動してアクセスすると、直接すべての JS をレンダリングできます
これは MathJax ツールによって解析されます。
数式 p の次の ID が MathJax-Element-X であるスクリプトの HTML コードを探し、その中の内容をコピーし、数式の前後に 2 つの $$ を追加します (前後に 2 つのドル記号があるため、合計 4 つです) 最後に、MathJax を使用して解析します。
上の写真以上には言えません:
まずパケットをキャプチャし、ajax リクエストをキャプチャします。重要なのは、主にいくつかのパラメータを決定するためにリクエストを構築する方法を確認することです。ルーチンは次のとおりです。 1. コンテキストを検索して、関連するパラメータが存在するかどうかを確認します。パラメータがサーバーから返された場合は、そのパラメータを取得するようにサーバーに直接要求します。 3. パラメータの場合は非常に複雑で不規則であるため、パラメータのキーを検索し、暗号化された js を見つけて、パラメータの値を構築して ajax URL を取得する必要があります。それは難しすぎるため、Selenium などの自動化ツールを使用してブラウザを駆動してアクセスすると、直接すべての JS をレンダリングできます