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

Anh Tuan
Data Science Expert
23-Sep-2024
Axios とは?

Axios は、ブラウザと Node.js の両方から HTTP 要求を行うために使用される、人気のある JavaScript ライブラリです。非同期 HTTP 要求を簡素化し、Promise を使用してレスポンスを簡単に処理できます。
機能:
- Promise ベース: JavaScript Promise を使用するため、非同期操作の管理が容易になります。
- ブラウザと Node.js のサポート: 両方の環境でシームレスに動作します。
- 自動 JSON パース: JSON レスポンスを自動的にパースします。
- インターセプター: 要求とレスポンスのインターセプターをサポートし、要求をグローバルに管理したり、レスポンスを処理したりできます。
- エラー処理: エラー処理のための組み込みメカニズムを提供します。
事前準備
Axios を使用する前に、以下がインストールされていることを確認してください。
インストール
npm または yarn を使用して Axios をインストールできます。
bash
npm install axios
または
bash
yarn add axios
基本例: GET 要求の実行
Axios を使用して、簡単な GET 要求を実行する方法は次のとおりです。
javascript
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
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
npm install axios
npm install capsolver
次に、ReCaptcha V3 を解決し、その解決策を要求で使用する方法を以下に示します。
javascript
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
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);
});
Axios を使用して Cookie を処理する
withCredentials オプションを使用して、Axios で Cookie を処理できます。
javascript
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
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%のコンプライアンスを確保しながら、ユーザーエクスペリエンスを向上させます。私たちは、サービスの責任ある使用を奨励します。詳細については、サービス利用規約およびプライバシーポリシーをご覧ください。
もっと見る

クラウドフレアの保護を回避する方法
Cloudflareの保護を回避する方法を学び、IPローテーション、TLSファイngerprint、およびCapSolverなどの実証済みの方法を発見して、課題に対処します。

Emma Foster
05-Feb-2026

RoxyBrowserでCAPTCHAを解決する方法(CapSolverの統合)
CapSolverをRoxyBrowserと統合して、ブラウザのタスクを自動化し、reCAPTCHA、Turnstile、その他のCAPTCHAを回避します。

Sora Fujimoto
04-Feb-2026

EasySpiderでCapSolverインテグレーションを使用してCaptchaを解く方法
EasySpiderはビジュアルでノーコードのウェブスクリーピングおよびブラウザ自動化ツールであり、CapSolverと組み合わせることで、reCAPTCHA v2やCloudflare TurnstileなどのCAPTCHAを信頼性高く解決できるため、ウェブサイト間でのシームレスな自動データ抽出を可能にします。

Sora Fujimoto
04-Feb-2026

Crawl4AI 対 Firecrawl: 完全な比較 & 2026年レビュー
2026年のCrawl4AIとFirecrawlを比較する。LLM対応のマーカドン抽出用のこれらのAIウェブスクレイピングツールの特徴、価格、パフォーマンスを確認する。

Sora Fujimoto
04-Feb-2026

Relevance AIにおけるreCAPTCHA v2のカプソルバー統合による解決方法
Relevance AIツールを構築し、リカプチャv2を解決するためCapSolverを使用します。APIを介してブラウザの自動化なしでフォームの送信を自動化します。

Sora Fujimoto
03-Feb-2026

即時データスカッパーのツール:コードなしでウェブデータを高速に抽出する方法
2026年用の最高のインスタントデータスラッパーのツールを発見してください。コードなしでウェブデータを迅速に抽出する方法を学びましょう。自動抽出用の最高の拡張機能とAPIを使用して。

Nikolai Smirnov
28-Jan-2026

