CAPSOLVER
ブログ
WebスクレイピングにAxiosを使う方法

Axios を用いた Web スクレイピングの方法

Logo of CapSolver

Anh Tuan

Data Science Expert

23-Sep-2024

Axios とは?

Axios は、ブラウザと Node.js の両方から HTTP 要求を行うために使用される、人気のある JavaScript ライブラリです。非同期 HTTP 要求を簡素化し、Promise を使用してレスポンスを簡単に処理できます。

機能:

  • Promise ベース: JavaScript Promise を使用するため、非同期操作の管理が容易になります。
  • ブラウザと Node.js のサポート: 両方の環境でシームレスに動作します。
  • 自動 JSON パース: JSON レスポンスを自動的にパースします。
  • インターセプター: 要求とレスポンスのインターセプターをサポートし、要求をグローバルに管理したり、レスポンスを処理したりできます。
  • エラー処理: エラー処理のための組み込みメカニズムを提供します。

事前準備

Axios を使用する前に、以下がインストールされていることを確認してください。

  • サーバーサイドでの使用には、Node.js がインストールされていること。
  • パッケージをインストールするには、npm または yarn がインストールされていること。

インストール

npm または yarn を使用して Axios をインストールできます。

bash Copy
npm install axios

または

bash Copy
yarn add axios

基本例: GET 要求の実行

Axios を使用して、簡単な GET 要求を実行する方法は次のとおりです。

javascript Copy
const axios = require('axios');

axios.get('https://httpbin.org/get')
  .then(response => {
    console.log('ステータスコード:', response.status);
    console.log('レスポンスボディ:', response.data);
  })
  .catch(error => {
    console.error('エラー:', error);
  });

Web スクレイピングの例: API から JSON データを取得する

API からデータを取得し、結果を出力してみましょう。

javascript Copy
const axios = require('axios');

axios.get('https://jsonplaceholder.typicode.com/posts')
  .then(response => {
    const posts = response.data;
    posts.forEach(post => {
      console.log(`${post.title} — ${post.body}`);
    });
  })
  .catch(error => {
    console.error('エラー:', error);
  });

CapSolver と Axios を使用して CAPTCHA を処理する

このセクションでは、CapSolver を Axios と統合して CAPTCHA を回避します。CapSolver は、ReCaptcha V3 や captcha などの CAPTCHA を解決するための API を提供しています。

CapSolver を使用して ReCaptcha V3 を解決し、その解決策を要求で使用する方法を紹介します。

例: CapSolver と Axios を使用して ReCaptcha V3 を解決する

まず、Axios と CapSolver をインストールします。

bash Copy
npm install axios
npm install capsolver

次に、ReCaptcha V3 を解決し、その解決策を要求で使用する方法を以下に示します。

javascript Copy
const axios = require('axios');
const CAPSOLVER_KEY = 'YourKey';
const PAGE_URL = 'https://antcpt.com/score_detector';
const PAGE_KEY = '6LcR_okUAAAAAPYrPe-HK_0RULO1aZM15ENyM-Mf';
const PAGE_ACTION = 'homepage';

async function createTask(url, key, pageAction) {
  try {
    const apiUrl = 'https://api.capsolver.com/createTask';
    const payload = {
      clientKey: CAPSOLVER_KEY,
      task: {
        type: 'ReCaptchaV3TaskProxyLess',
        websiteURL: url,
        websiteKey: key,
        pageAction: pageAction
      }
    };
    const headers = {
      'Content-Type': 'application/json',
    };
    const response = await axios.post(apiUrl, payload, { headers });
    return response.data.taskId;

  } catch (error) {
    console.error('CAPTCHA タスクの作成エラー:', error);
    throw error;
  }
}

async function getTaskResult(taskId) {
  try {
    const apiUrl = 'https://api.capsolver.com/getTaskResult';
    const payload = {
      clientKey: CAPSOLVER_KEY,
      taskId: taskId,
    };
    const headers = {
      'Content-Type': 'application/json',
    };
    let result;
    do {
      const response = await axios.post(apiUrl, payload, { headers });
      result = response.data;
      if (result.status === 'ready') {
        return result.solution;
      }
      await new Promise(resolve => setTimeout(resolve, 5000)); // 5 秒間待機してから再試行
    } while (true);

  } catch (error) {
    console.error('CAPTCHA 結果の取得エラー:', error);
    throw error;
  }
}

function setSessionHeaders() {
  return {
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Not/A)Brand";v="99", "Google Chrome";v="107", "Chromium";v="107"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': 'Windows',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36',
    'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip, deflate',
    'accept-language': 'en,fr-FR;q=0.9,fr;q=0.8,en-US;q=0.7',
  };
}

async function main() {
  const headers = setSessionHeaders();
  console.log('CAPTCHA タスクを作成しています...');
  const taskId = await createTask(PAGE_URL, PAGE_KEY, PAGE_ACTION);
  console.log(`タスク ID: ${taskId}`);

  console.log('CAPTCHA 結果を取得しています...');
  const solution = await getTaskResult(taskId);
  const token = solution.gRecaptchaResponse;
  console.log(`トークンの解決策: ${token}`);

  const res = await axios.post('https://antcpt.com/score_detector/verify.php', { 'g-recaptcha-response': token }, { headers });
  const response = res.data;
  console.log(`スコア: ${response.score}`);
}

main().catch(err => {
  console.error(err);
});

Axios を使用してプロキシを処理する

Axios でプロキシを使用して要求をルーティングするには、次のようにします。

javascript Copy
const axios = require('axios');

axios.get('https://httpbin.org/ip', {
  proxy: {
    host: 'proxyserver',
    port: 8080,
    auth: {
      username: 'username',
      password: 'password'
    }
  }
})
  .then(response => {
    console.log('レスポンスボディ:', response.data);
  })
  .catch(error => {
    console.error('エラー:', error);
  });

withCredentials オプションを使用して、Axios で Cookie を処理できます。

javascript Copy
const axios = require('axios');

axios.get('https://httpbin.org/cookies/set?name=value', { withCredentials: true })
  .then(response => {
    console.log('Cookie:', response.headers['set-cookie']);
  })
  .catch(error => {
    console.error('エラー:', error);
  });

高度な使い方: カスタムヘッダーと POST 要求

Axios を使用して、カスタムヘッダーを送信し、POST 要求を実行できます。

javascript Copy
const axios = require('axios');

const headers = {
  'User-Agent': 'Mozilla/5.0 (compatible)',
  'Accept-Language': 'en-US,en;q=0.5',
};

const data = {
  username: 'testuser',
  password: 'testpass',
};

axios.post('https://httpbin.org/post', data, { headers })
  .then(response => {
    console.log('レスポンス JSON:', response.data);
  })
  .catch(error => {
    console.error('エラー:', error);
  });

まとめ

Axios を使用すると、Node.js とブラウザの両方の環境で、HTTP 要求を簡単に管理できます。CapSolver と統合することにより、ReCaptcha V3 や captcha などの CAPTCHA を回避して、制限されたコンテンツにアクセスすることができます。

コンプライアンス免責事項: このブログで提供される情報は、情報提供のみを目的としています。CapSolverは、すべての適用される法律および規制の遵守に努めています。CapSolverネットワークの不法、詐欺、または悪用の目的での使用は厳格に禁止され、調査されます。私たちのキャプチャ解決ソリューションは、公共データのクローリング中にキャプチャの問題を解決する際に100%のコンプライアンスを確保しながら、ユーザーエクスペリエンスを向上させます。私たちは、サービスの責任ある使用を奨励します。詳細については、サービス利用規約およびプライバシーポリシーをご覧ください。

もっと見る

CAPTCHAをNanoClawとCapSolverで解く
NanoClawとCapSolverを使ってCAPTCHAを自動的に解く方法

CapSolverとNanoClawを使用して、reCAPTCHA、Turnstile、AWS WAF、その他のCAPTCHAを自動で解決するためのステップバイステップガイド。Claude AIエージェント、ゼロコード、および複数のブラウザに対応。

AI
Logo of CapSolver

Emma Foster

20-Mar-2026

ティニーフィッシュ エージェントQでキャプチャを解く
TinyFish AgentQLでCAPTCHAを解く方法 – CapSolverを使用したステップバイステップガイド

CapSolverをTinyFish AgentQLと統合して、reCAPTCHAやCloudflare TurnstileなどのCAPTCHAを自動的に解決する方法を学びましょう。PythonおよびJavaScriptのSDK例を用いたステップバイステップのチュートリアルで、シームレスなAI駆動のウェブオートメーションを実現します。

AI
Logo of CapSolver

Sora Fujimoto

19-Mar-2026

CapSolverを使用してn8nでGeeTest V3を解く方法:完全統合ガイド
CapSolverを使用してn8nでGeeTest V3を解く方法:完全統合ガイド

CapSolverをn8nと統合してGeeTest V3を解決し、信頼性の高い自動化ワークフローを構築する方法を学びましょう。

n8n
Logo of CapSolver

Sora Fujimoto

18-Mar-2026

CapSolverとn8nを使用してImageToTextを解決する方法
CapSolverとn8nを使用してImageToTextを解決する方法

画像からテキストへの変換、CAPTCHAソルバー、OCR CAPTCHA、CAPTSOVER、N8N、N8Nワークフロー、自動化、OCR API、CAPTCHA 自動化、Base64 画像、画像認識、AI OCR、Webhook、スケジュール済みワークフロー、フォーム自動化、CAPTCHAバイパス、セッション処理、プロキシなしCAPTCHA、インスタントOCR、テキスト認識

n8n
Logo of CapSolver

Lucas Mitchell

18-Mar-2026

sCapSolverとn8nの統合:CAPTCHAの解決とワークフローのオートメーション
n8nでのCapSolverの使い方: ワークフローでCAPTCHAを解くための完全なガイド

CapSolverをn8nと連携させてCAPTCHAを解き、信頼性のあるオートメーションワークフローを簡単に構築する方法を学びましょう。

n8n
Logo of CapSolver

Sora Fujimoto

18-Mar-2026

n8nにおけるTLSフィンガープリントの解決: CapSolverを使用して
n8nにおけるTLSファイアウォールの解決方法 CapSolverを用いて

n8nでCapSolverを使用してTLSフィンガープリントを解決。リクエストを本物のブラウザのように見せかけ、ボット検出のブロックを回避します。

n8n
Logo of CapSolver

Sora Fujimoto

18-Mar-2026