ログインページをざっと見ただけで、ユーザー名とパスワードの組み合わせを認証ページに投稿し、ログインセッションを表すために Cookie を使用すると仮定することで、libcurl を使用してこれを行うことができます。最初のステップは、次のオプションが設定されていることを確認することです。
- CURLOPT_FOLLOWLOCATION - サーバーは認証後にリダイレクトすることがあります。これは非常に一般的です。
- CURLOPT_POST - libcurl に post モードに切り替えるように指示します。
- CURLOPT_POSTFIELDS - これは libcurl に投稿フィールドに設定する値を伝えます。このオプションを "
userId=<insert username>&password=<insert password>
" に設定します。その値は、そのページのソース コードから派生します。
- CURLOPT_USERAGENT - シンプルなユーザー エージェントを設定して、Web サーバーがそれを破棄しないようにします (いくつかの厳密なものはこれを行います)。
次に、投稿が完了すると、libcurl インスタンスには、サイトがログイン ユーザーを識別するために使用するある種の認証 Cookie が含まれている必要があります。Curl は、特定のインスタンス内で Cookie を追跡する必要があります。Cookie の動作を微調整したい場合、Curl には多くのオプションがあります。
「ログイン」したら、そのアカウントでの各リクエストに同じ libcurl インスタンスが使用されることを確認してください。そうしないと、ログアウトしたと見なされます。
結果のページ go の解析に関しては、c 用の HTML パーサーがたくさんあります - ただgoogleです。私が言う唯一のことは、HTML パーサーを自分で作成しようとしないことです。多くのサイトが適切な (または動作する) HTML を生成しないため、これは非常に厄介です。