Sản phẩmTích hợpTài nguyênTài liệuGiá cả
Bắt đầu ngay

© 2026 CapSolver. All rights reserved.

Liên hệ chúng tôi

Slack: lola@capsolver.com

Sản phẩm

  • reCAPTCHA v2
  • reCAPTCHA v3
  • Cloudflare Turnstile
  • Cloudflare Challenge
  • AWS WAF
  • Tiện ích trình duyệt
  • Thêm nhiều loại CAPTCHA

Tích hợp

  • Selenium
  • Playwright
  • Puppeteer
  • n8n
  • Đối tác
  • Xem tất cả tích hợp

Tài nguyên

  • Chương trình giới thiệu
  • Tài liệu
  • Tham chiếu API
  • Blog
  • Câu hỏi thường gặp
  • Thuật ngữ
  • Trạng thái

Pháp lý

  • Điều khoản dịch vụ
  • Chính sách bảo mật
  • Chính sách hoàn tiền
  • Không bán thông tin cá nhân của tôi
Blog/All/Cách sử dụng curl_cffi để trích xuất dữ liệu web
Sep18, 2024

Cách sử dụng curl_cffi để trích xuất dữ liệu web

Anh Tuan

Anh Tuan

Data Science Expert

curl_cffi là một thư viện Python cung cấp các liên kết hiệu quả, cấp thấp tới thư viện libcurl bằng cách sử dụng CFFI (C Foreign Function Interface). Điều này cho phép bạn thực hiện các yêu cầu HTTP với hiệu năng cao và khả năng kiểm soát chi tiết, tương tự như công cụ dòng lệnh curl nhưng trong Python. Nó đặc biệt hữu ích cho các tác vụ thu thập dữ liệu web đòi hỏi tốc độ và cấu hình nâng cao.

Các tính năng:

  • Hiệu năng cao: Tận dụng tốc độ của libcurl để thực hiện các yêu cầu HTTP nhanh chóng.
  • An toàn luồng: An toàn khi sử dụng trong các ứng dụng đa luồng.
  • Các tính năng nâng cao: Hỗ trợ proxy, cấu hình SSL/TLS, tiêu đề tùy chỉnh, và hơn thế nữa.
  • Kiểm soát cấp thấp: Cung cấp khả năng kiểm soát chi tiết đối với quá trình yêu cầu và phản hồi.

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

Trước khi bạn bắt đầu sử dụng curl_cffi, hãy đảm bảo rằng bạn đã cài đặt những thứ sau:

  • Python 3.6 trở lên
  • libcurl được cài đặt trên hệ thống của bạn
  • pip để cài đặt các gói Python

Trên các hệ thống Ubuntu/Debian, bạn có thể cần cài đặt các tiêu đề phát triển libcurl:

bash Copy
sudo apt-get install libcurl4-openssl-dev

Bắt đầu với curl_cffi

Cài đặt

Cài đặt curl_cffi bằng pip:

bash Copy
pip install curl_cffi

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

Đây là một ví dụ cơ bản về cách sử dụng curl_cffi để thực hiện yêu cầu GET:

python Copy
from curl_cffi import requests

# Thực hiện yêu cầu GET
response = requests.get('https://httpbin.org/get')

# Kiểm tra mã trạng thái
print(f'Mã trạng thái: {response.status_code}')

# In nội dung phản hồi
print('Nội dung phản hồi:', response.text)

Ví dụ thu thập dữ liệu web: Thu thập trích dẫn từ một trang web

Hãy thu thập dữ liệu từ một trang web để trích xuất thông tin. Chúng ta sẽ sử dụng Quotes to Scrape để lấy tất cả các trích dẫn cùng với tác giả của chúng.

python Copy
from curl_cffi import requests
from bs4 import BeautifulSoup

# URL để thu thập dữ liệu
url = 'http://quotes.toscrape.com/'

# Thực hiện yêu cầu GET
response = requests.get(url)

# Phân tích cú pháp nội dung HTML bằng BeautifulSoup
soup = BeautifulSoup(response.content, 'html.parser')

# Tìm tất cả các phần tử trích dẫn
quotes = soup.find_all('div', class_='quote')

# Trích xuất và hiển thị các trích dẫn và tác giả
for quote in quotes:
    text = quote.find('span', class_='text').get_text()
    author = quote.find('small', class_='author').get_text()
    print(f'{text} — {author}')

Kết quả:

Copy
“The world as we have created it is a process of our thinking. It cannot be changed without changing our thinking.” — Albert Einstein
“It is our choices, Harry, that show what we truly are, far more than our abilities.” — J.K. Rowling
... (các trích dẫn khác)

Xử lý Captcha với CapSolver và curl_cffi

Trong phần này, chúng ta sẽ tìm hiểu cách tích hợp CapSolver với curl_cffi để bỏ qua captcha. CapSolver là một dịch vụ bên ngoài giúp giải quyết nhiều loại captcha khác nhau, bao gồm cả ReCaptcha V2, thường được sử dụng trên các trang web.

Chúng ta sẽ trình bày cách giải quyết ReCaptcha V2 bằng CapSolver và sau đó thu thập dữ liệu của một trang yêu cầu giải quyết captcha trước.

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

python Copy
import os
import capsolver
from curl_cffi import requests

# Cân nhắc sử dụng biến môi trường cho thông tin nhạy cảm
capsolver.api_key = os.getenv("CAPSOLVER_API_KEY", "Your CapSolver API Key")
PAGE_URL = os.getenv("PAGE_URL", "https://example.com")  # URL của trang có captcha
PAGE_KEY = os.getenv("PAGE_SITE_KEY", "SITE_KEY")        # Site key cho captcha

def solve_recaptcha_v2(url, site_key):
    solution = capsolver.solve({
        "type": "ReCaptchaV2TaskProxyless",
        "websiteURL": url,
        "websiteKey": site_key,
        "proxy": PROXY
    })
    return solution['solution']['gRecaptchaResponse']

def main():
    print("Đang giải quyết reCaptcha V2...")
    captcha_solution = solve_recaptcha_v2(PAGE_URL, PAGE_KEY)
    print("Captcha đã được giải quyết!")

if __name__ == "__main__":
    main()

Lưu ý: Thay thế PAGE_URL bằng URL của trang chứa captcha và PAGE_SITE_KEY bằng site key của captcha. Bạn có thể tìm thấy site key trong mã nguồn HTML của trang, thường nằm trong <div> chứa widget captcha.

Xử lý Proxy với curl_cffi

Nếu bạn cần định tuyến các yêu cầu của mình thông qua một proxy, curl_cffi giúp bạn thực hiện điều đó một cách đơn giản:

python Copy
from curl_cffi import requests

# Định nghĩa cài đặt proxy
proxies = {
    'http': 'http://username:password@proxyserver:port',
    'https': 'https://username:password@proxyserver:port',
}

# Thực hiện yêu cầu GET bằng proxy
response = requests.get('https://httpbin.org/ip', proxies=proxies)

# In nội dung phản hồi
print('Nội dung phản hồi:', response.text)

Xử lý Cookie với curl_cffi

Bạn có thể quản lý cookie bằng CookieJar từ mô-đun http.cookiejar của Python:

python Copy
from curl_cffi import requests
from http.cookiejar import CookieJar

# Tạo một instance CookieJar
cookie_jar = CookieJar()

# Tạo một session với cookie jar
session = requests.Session()
session.cookies = cookie_jar

# Thực hiện yêu cầu GET
response = session.get('https://httpbin.org/cookies/set?name=value')

# Hiển thị các cookie
for cookie in session.cookies:
    print(f'{cookie.name}: {cookie.value}')

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 curl_cffi:

python Copy
from curl_cffi import requests

# Định nghĩa tiêu đề tùy chỉnh
headers = {
    'User-Agent': 'Mozilla/5.0 (compatible)',
    'Accept-Language': 'en-US,en;q=0.5',
}

# Dữ liệu để gửi trong yêu cầu POST
data = {
    'username': 'testuser',
    'password': 'testpass',
}

# Thực hiện yêu cầu POST
response = requests.post('https://httpbin.org/post', headers=headers, data=data)

# In phản hồi JSON
print('Phản hồi JSON:', response.json())

Mã thưởng

Nhận Mã thưởng của bạn cho các giải pháp captcha hàng đầu tại CapSolver: scrape. Sau khi đổi mã, bạn sẽ nhận được thêm 5% tiền thưởng sau mỗi lần nạp tiền, không giới hạn số lần.

Kết luận

Với curl_cffi, bạn có thể thực hiện hiệu quả các tác vụ thu thập dữ liệu web trong khi vẫn có khả năng kiểm soát chi tiết các yêu cầu HTTP của mình. Việc tích hợp nó với CapSolver cho phép bạn bỏ qua các captcha như ReCaptcha V2, cho phép truy cập vào nội dung mà nếu không thì rất khó để thu thập.

Cảm thấy tự do để mở rộng các ví dụ này cho phù hợp với nhu cầu thu thập dữ liệu cụ thể của bạn. Luôn nhớ tôn trọng các điều khoản dịch vụ của các trang web bạn thu thập dữ liệu và tuân thủ các hướng dẫn pháp lý.

Chúc bạn thu thập dữ liệu vui vẻ!

Xem thêm

Apr 30, 2026

Lỗi 1020 của Cloudflare: Truy cập bị từ chối trong trích xuất dữ liệu web & Bảo vệ WAF

Hãy học cách xác định nguyên nhân gây ra lỗi Cloudflare 1020 Truy cập Bị Từ Chối, cách Tường lửa Ứng dụng Web và phát hiện bot hoạt động, và cách các nhà phát triển giảm thiểu kết quả dương tính giả trong các quy trình tự động hợp lệ.

Anh Tuan
Anh Tuan
Apr 29, 2026

Theo dõi Giá Sản Phẩm Được Bảo Vệ Bằng AWS WAF Trong n8n Với CapSolver

Học cách sử dụng mẫu CapSolver n8n để theo dõi các trang sản phẩm được bảo vệ bởi AWS WAF, giải quyết các thách thức, trích xuất giá cả, so sánh các thay đổi và kích hoạt cảnh báo tự động.

Anh Tuan

Nội dung

Anh Tuan
Apr 29, 2026

Các tác nhân AI trong SEO: Từ nghiên cứu từ khóa đến thu thập dữ liệu tự động

Học cách các tác nhân AI trong SEO tự động hóa nghiên cứu từ khóa, phân tích đối thủ cạnh tranh và thu thập dữ liệu – và cách xử lý các thách thức CAPTCHA trong quy trình của bạn với CapSolver.

Anh Tuan
Anh Tuan
Apr 29, 2026

Tài liệu API Giải quyết CAPTCHA cho Nhà phát triển: Hướng dẫn năm 2026

Nâng cao kỹ năng giải CAPTCHA với tài liệu API toàn diện dành cho nhà phát triển của chúng tôi. Học cách tích hợp CapSolver để xử lý reCAPTCHA, AWS WAF và nhiều hơn nữa.

Anh Tuan
Anh Tuan