CAPSOLVER
Blog
Cách sử dụng Axios cho Web Scraping

Cách sử dụng Axios để Web Scraping

Logo of CapSolver

Anh Tuan

Data Science Expert

23-Sep-2024

Axios là gì?

Axios là một thư viện JavaScript phổ biến được sử dụng để thực hiện các yêu cầu HTTP từ cả trình duyệt và Node.js. Nó đơn giản hóa việc thực hiện các yêu cầu HTTP không đồng bộ và cho phép bạn xử lý phản hồi một cách dễ dàng với lời hứa.

Tính năng:

  • Dựa trên lời hứa: Sử dụng lời hứa JavaScript, giúp dễ dàng quản lý các hoạt động không đồng bộ.
  • Hỗ trợ trình duyệt và Node.js: Hoạt động liền mạch trong cả hai môi trường.
  • Phân tích JSON tự động: Tự động phân tích các phản hồi JSON.
  • Bộ chặn: Hỗ trợ bộ chặn yêu cầu và phản hồi để quản lý yêu cầu và xử lý phản hồi trên toàn cầu.
  • Xử lý lỗi: Cung cấp các cơ chế tích hợp để xử lý lỗi.

Điều kiện tiên quyết

Trước khi sử dụng Axios, hãy đảm bảo bạn đã có:

  • Node.js được cài đặt cho việc sử dụng phía máy chủ.
  • npm hoặc yarn để cài đặt gói.

Cài đặt

Bạn có thể cài đặt Axios bằng npm hoặc yarn:

bash Copy
npm install axios

hoặc

bash Copy
yarn add axios

Ví dụ cơ bản: Thực hiện yêu cầu GET

Đây là cách thực hiện yêu cầu GET đơn giản bằng Axios:

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

axios.get('https://httpbin.org/get')
  .then(response => {
    console.log('Mã trạng thái:', response.status);
    console.log('Nội dung phản hồi:', response.data);
  })
  .catch(error => {
    console.error('Lỗi:', error);
  });

Ví dụ trích xuất web: Lấy dữ liệu JSON từ API

Hãy lấy dữ liệu từ API và in kết quả:

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('Lỗi:', error);
  });

Xử lý CAPTCHA với CapSolver và Axios

Trong phần này, chúng ta sẽ tích hợp CapSolver với Axios để bỏ qua CAPTCHA. CapSolver cung cấp API để giải quyết CAPTCHA như ReCaptcha V3 và captcha.

Chúng ta sẽ trình bày cách giải quyết ReCaptcha V3 với CapSolver và sử dụng giải pháp trong một yêu cầu.

Ví dụ: Giải quyết ReCaptcha V3 với CapSolver và Axios

Đầu tiên, hãy cài đặt Axios và CapSolver:

bash Copy
npm install axios
npm install capsolver

Bây giờ, đây là cách giải quyết ReCaptcha V3 và sử dụng giải pháp trong yêu cầu của bạn:

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('Lỗi tạo nhiệm vụ 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)); // đợi 5 giây trước khi thử lại
    } while (true);

  } catch (error) {
    console.error('Lỗi lấy kết quả 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('Đang tạo nhiệm vụ CAPTCHA...');
  const taskId = await createTask(PAGE_URL, PAGE_KEY, PAGE_ACTION);
  console.log(`ID nhiệm vụ: ${taskId}`);

  console.log('Đang lấy kết quả CAPTCHA...');
  const solution = await getTaskResult(taskId);
  const token = solution.gRecaptchaResponse;
  console.log(`Giải pháp mã thông báo: ${token}`);

  const res = await axios.post('https://antcpt.com/score_detector/verify.php', { 'g-recaptcha-response': token }, { headers });
  const response = res.data;
  console.log(`Điểm số: ${response.score}`);
}

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

Xử lý proxy với Axios

Để định tuyến yêu cầu của bạn thông qua proxy với 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('Nội dung phản hồi:', response.data);
  })
  .catch(error => {
    console.error('Lỗi:', error);
  });

Bạn có thể xử lý cookie trong Axios bằng cách sử dụng tùy chọn withCredentials:

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('Lỗi:', error);
  });

Sử dụng nâng cao: Tiêu đề tùy chỉnh và yêu cầu POST

Bạn có thể gửi tiêu đề tùy chỉnh và thực hiện yêu cầu POST với Axios:

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('Phản hồi JSON:', response.data);
  })
  .catch(error => {
    console.error('Lỗi:', error);
  });

Kết luận

Với Axios, bạn có thể dễ dàng quản lý các yêu cầu HTTP trong cả môi trường Node.js và trình duyệt. Bằng cách tích hợp nó với CapSolver, bạn có thể bỏ qua CAPTCHA như ReCaptcha V3 và captcha, cho phép truy cập nội dung bị giới hạn.

Tuyên bố Tuân thủ: Thông tin được cung cấp trên blog này chỉ mang tính chất tham khảo. CapSolver cam kết tuân thủ tất cả các luật và quy định hiện hành. Việc sử dụng mạng lưới CapSolver cho các hoạt động bất hợp pháp, gian lận hoặc lạm dụng là hoàn toàn bị cấm và sẽ bị điều tra. Các giải pháp giải captcha của chúng tôi nâng cao trải nghiệm người dùng trong khi đảm bảo tuân thủ 100% trong việc giúp giải quyết các khó khăn về captcha trong quá trình thu thập dữ liệu công khai. Chúng tôi khuyến khích việc sử dụng dịch vụ của chúng tôi một cách có trách nhiệm. Để biết thêm thông tin, vui lòng truy cập Điều khoản Dịch vụ và Chính sách Quyền riêng tư.

Thêm

Cách sửa lỗi gỡ mã web phổ biến vào năm 2026
Cách sửa các lỗi thu thập dữ liệu web phổ biến vào năm 2026

Nắm vững việc sửa chữa các lỗi trình gỡ mã web đa dạng như 400, 401, 402, 403, 429, 5xx, và Cloudflare 1001 vào năm 2026. Học các chiến lược tiên tiến về chuyển đổi IP, tiêu đề, và giới hạn tốc độ thích ứng với CapSolver.

web scraping
Logo of CapSolver

Nikolai Smirnov

05-Feb-2026

Làm thế nào để giải quyết bảo vệ Cloudflare khi quét web
Cách khắc phục bảo vệ Cloudflare khi quét web

Học cách giải quyết bảo vệ Cloudflare khi quét dữ liệu web. Khám phá các phương pháp đã được chứng minh như xoay đổi IP, tinh vân TLS và CapSolver để xử lý các thách thức.

web scraping
Logo of CapSolver

Nikolai Smirnov

05-Feb-2026

RoxyBrowser với tích hợp CapSolver
Cách giải Captcha trong RoxyBrowser với tích hợp CapSolver

Tích hợp CapSolver với RoxyBrowser để tự động hóa các nhiệm vụ trình duyệt và vượt qua reCAPTCHA, Turnstile và các CAPTCHA khác.

web scraping
Logo of CapSolver

Anh Tuan

04-Feb-2026

AI Tính liên quan với CapSolver
Cách giải reCAPTCHA v2 trong Relevance AI với tích hợp CapSolver

Xây dựng một công cụ AI của Relevance để giải quyết reCAPTCHA v2 bằng CapSolver. Tự động hóa việc gửi biểu mẫu qua API mà không cần tự động hóa trình duyệt.

web scraping
Logo of CapSolver

Anh Tuan

03-Feb-2026

Công cụ Ghi Dữ Liệu Nhanh: Cách Nhanh Chóng Trích Xuất Dữ Liệu Từ Web Không Cần Mã
Công cụ Ghi dữ liệu Nhanh: Cách nhanh chóng trích xuất dữ liệu web mà không cần code

Khám phá các công cụ trích xuất dữ liệu tức thì tốt nhất cho năm 2026. Học các cách nhanh chóng để trích xuất dữ liệu từ web mà không cần mã nguồn bằng cách sử dụng các tiện ích mở rộng hàng đầu và API để trích xuất tự động.

web scraping
Logo of CapSolver

Nikolai Smirnov

28-Jan-2026

Trích xuất dữ liệu từ web bài báo tin tức
Thu thập dữ liệu từ web các bài báo tin tức bằng Python (Hướng dẫn 2026)

Nắm vững trích xuất dữ liệu từ web bài báo tin tức bằng Python vào năm 2026. Học cách giải reCAPTCHA v2/v3 bằng CapSolver và xây dựng các pipeline dữ liệu có thể mở rộng.

web scraping
Logo of CapSolver

Anh Tuan

28-Jan-2026