CAPSOLVER
Blog
Các User Agent Tốt Nhất để Scrape Web & Cách Sử Dụng Chúng

Các User Agent Tốt Nhất để Scrape Web & Cách Sử Dụng Chúng

Logo of CapSolver

Anh Tuan

Data Science Expert

07-Mar-2025

Khi thực hiện web scraping, sử dụng user agent sai có thể dẫn đến bị chặn ngay lập tức. Các trang web thường dựa vào user agent để phân biệt giữa người dùng thực và bot. Để tránh bị phát hiện, điều quan trọng là phải sử dụng user agent được định dạng tốt và cập nhật thường xuyên trong các dự án web scraping của bạn.

Trong hướng dẫn này, bạn sẽ khám phá:

  • User agent là gì và tại sao nó quan trọng đối với web scraping
  • Danh sách các user agent tốt nhất để scraping
  • Cách đặt và luân chuyển user agent trong Python
  • Các thực tiễn tốt nhất bổ sung để tránh bị chặn

Hãy bắt đầu! 🚀

User Agent là gì?

User Agent (UA) là một chuỗi được gửi trong tiêu đề yêu cầu HTTP để xác định trình duyệt, hệ điều hành và các chi tiết khác. Máy chủ web sử dụng thông tin này để hiển thị nội dung phù hợp cho thiết bị của người dùng.

Ví dụ về chuỗi User Agent:

plaintext Copy
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36

Phân tích:

  • Mozilla/5.0 – Họ trình duyệt
  • (Windows NT 10.0; Win64; x64) – Chi tiết hệ điều hành
  • AppleWebKit/537.36 (KHTML, like Gecko) – Công cụ hiển thị
  • Chrome/123.0.0.0 – Phiên bản trình duyệt
  • Safari/537.36 – Khung tương thích

Bằng cách sửa đổi user agent, bạn có thể làm cho web scraper của mình trông giống như một trình duyệt thực, giảm nguy cơ bị phát hiện.

Tại sao User Agent quan trọng đối với Web Scraping

Hầu hết các trang web phân tích user agent để lọc lưu lượng truy cập của bot. Nếu scraper của bạn gửi một user agent không hợp lệ hoặc lỗi thời, nó có thể bị chặn ngay lập tức.

Bằng cách sử dụng user agent phù hợp, bạn có thể:

  • Mô phỏng một trình duyệt thực và hòa nhập với lưu lượng truy cập bình thường.
  • Bỏ qua các biện pháp bảo vệ chống bot kiểm tra các thư viện scraping mặc định.
  • Cải thiện tỷ lệ thành công của yêu cầu và tránh CAPTCHA hoặc bị cấm IP.

Tuy nhiên, chỉ sử dụng một user agent lặp đi lặp lại vẫn có thể kích hoạt các hệ thống chống bot. Đó là lý do tại sao luân chuyển user agent rất quan trọng.

Các User Agent tốt nhất cho Web Scraping (Danh sách cập nhật)

Dưới đây là danh sách được tuyển chọn các user agent hiệu quả để web scraping:

User Agent của Google Chrome:

plaintext Copy
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36

User Agent của Mozilla Firefox:

plaintext Copy
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:124.0) Gecko/20100101 Firefox/124.0
Mozilla/5.0 (Macintosh; Intel Mac OS X 14.4; rv:124.0) Gecko/20100101 Firefox/124.0
Mozilla/5.0 (X11; Linux i686; rv:124.0) Gecko/20100101 Firefox/124.0

Các trình duyệt khác:

plaintext Copy
Mozilla/5.0 (Macintosh; Intel Mac OS X 14_4_1) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.4.1 Safari/605.1.15
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36 Edg/123.0.2420.81

💡 Mẹo: Bạn có thể kiểm tra user agent của mình bằng cách truy cập WhatIsMyUserAgent.

Cách đặt User Agent tùy chỉnh trong Python

Nhiều trang web triển khai cơ chế phát hiện bot chặn các yêu cầu thiếu hoặc có tiêu đề user-agent không chính xác. Trong phần này, chúng ta hãy sử dụng các cách khác nhau để đặt và luân chuyển user agent hiệu quả.

1. Sử dụng thư viện requests

Cách đơn giản nhất để định nghĩa user agent là sửa đổi tiêu đề của một yêu cầu bằng thư viện requests phổ biến.

Ví dụ: Đặt User Agent tĩnh

python Copy
import requests

# Định nghĩa tiêu đề với User-Agent tùy chỉnh
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36"
}

# Gửi yêu cầu với User-Agent tùy chỉnh
response = requests.get("https://httpbin.org/headers", headers=headers)

# In tiêu đề phản hồi
print(response.text)

Kết quả:

json Copy
{
  "headers": {
    "Accept": "*/*",
    "Accept-Encoding": "gzip, deflate",
    "Host": "httpbin.org",
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36"
  }
}

Điều này xác nhận rằng máy chủ nhận và nhận dạng chuỗi user agent một cách chính xác.

2. Luân chuyển User Agent để tăng tính ẩn danh

Sử dụng một user agent duy nhất lặp đi lặp lại có thể dẫn đến bị chặn. Để tránh điều này, hãy luân chuyển user agent bằng cách sử dụng danh sách được xác định trước.

Ví dụ: Luân chuyển User Agent với random

python Copy
import requests
import random

# Danh sách các user agent khác nhau
user_agents = [
    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36",
    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36",
    "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36",
    "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:124.0) Gecko/20100101 Firefox/124.0"
]

# Chọn một user agent ngẫu nhiên
headers = {"User-Agent": random.choice(user_agents)}

# Gửi yêu cầu với user agent được chọn ngẫu nhiên
response = requests.get("https://httpbin.org/headers", headers=headers)

print(response.text)

Bằng cách luân chuyển user agent, scraper của bạn trông giống người dùng hơn và giảm khả năng bị phát hiện.

3. Sử dụng fake_useragent để tạo User Agent động

Thay vì duy trì một danh sách tĩnh, bạn có thể tạo user agent động bằng thư viện fake_useragent.

Cài đặt:

sh Copy
pip install fake-useragent

Ví dụ: Tạo User Agent ngẫu nhiên

python Copy
from fake_useragent import UserAgent
import requests

# Tạo đối tượng UserAgent
ua = UserAgent()

# Tạo user agent ngẫu nhiên
headers = {"User-Agent": ua.random}

# Gửi yêu cầu với user agent được tạo động
response = requests.get("https://httpbin.org/headers", headers=headers)

print(response.text)

Phương pháp này cung cấp nhiều loại user agent hơn trong khi vẫn giữ cho chúng được cập nhật.

4. Đặt User Agent tùy chỉnh trong Selenium

Khi sử dụng Selenium để web scraping, việc đặt user agent yêu cầu sửa đổi tùy chọn trình duyệt.

Ví dụ: Đặt User Agent trong Chrome

python Copy
from selenium import webdriver
from selenium.webdriver.chrome.options import Options

# Cấu hình tùy chọn Chrome
chrome_options = Options()
chrome_options.add_argument("user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36")

# Khởi chạy trình duyệt với user agent tùy chỉnh
driver = webdriver.Chrome(options=chrome_options)

# Mở trang kiểm tra để xác minh user agent
driver.get("https://httpbin.org/headers")

# Trích xuất và in nội dung trang
print(driver.page_source)

driver.quit()

Bằng cách sử dụng các công cụ tự động hóa trình duyệt như Selenium, bạn có thể mô phỏng hành vi của người dùng thực và bỏ qua các biện pháp chống bot nâng cao.

5. Xác minh User Agent của bạn

Để đảm bảo user agent của bạn được đặt chính xác, hãy sử dụng các phương pháp sau:

  1. Kiểm tra tiêu đề phản hồi từ https://httpbin.org/headers
  2. Sử dụng công cụ dành cho nhà phát triển trình duyệt (F12 > Network > Headers) để kiểm tra yêu cầu
  3. Sử dụng nhật ký để xác nhận việc luân chuyển user agent trong scraper

Ví dụ: Nhật ký User Agent trong vòng lặp

python Copy
import requests
import random
import time

# Danh sách user agent
user_agents = [
    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36",
    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36",
    "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36",
    "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:124.0) Gecko/20100101 Firefox/124.0"
]

# Vòng lặp qua các yêu cầu
for i in range(5):
    user_agent = random.choice(user_agents)
    headers = {"User-Agent": user_agent}

    response = requests.get("https://httpbin.org/headers", headers=headers)
    print(f"Yêu cầu {i+1} - User-Agent: {user_agent}")

    time.sleep(2)  # Thêm độ trễ để tránh giới hạn tốc độ

Script này ghi lại các user agent khác nhau trên nhiều yêu cầu, giúp bạn gỡ lỗi các chiến lược luân chuyển.

Cách Luân chuyển User Agent ở quy mô lớn

Thay vì sử dụng một user agent tĩnh duy nhất, tốt hơn là luân chuyển chúng một cách động để tránh bị phát hiện. Dưới đây là cách bạn có thể luân chuyển user agent trong Python:

python Copy
import requests
import random

user_agents = [
    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36",
    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36",
    "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36"
]

headers = {"User-Agent": random.choice(user_agents)}
response = requests.get("https://httpbin.org/headers", headers=headers)
print(response.text)

Script này chọn ngẫu nhiên một user agent từ danh sách, làm cho scraper của bạn khó bị phát hiện hơn.

Các thực tiễn tốt nhất bổ sung để tránh bị chặn

Ngay cả với các user agent tốt nhất, web scraping yêu cầu các kỹ thuật bổ sung để không bị phát hiện:

  • Sử dụng proxy để tránh bị cấm IP.
  • Triển khai độ trễ & khoảng thời gian ngẫu nhiên giữa các yêu cầu.
  • Luân chuyển tiêu đề và mẫu yêu cầu để bắt chước hành vi của con người.
  • Tránh scraping quá mức để tránh kích hoạt giới hạn tốc độ.
  • Giám sát mã phản hồi để phát hiện bị chặn và điều chỉnh cho phù hợp.

Ngay cả với việc luân chuyển user-agent và proxy và tất cả những lời khuyên đó, các trang web vẫn có thể triển khai các kỹ thuật phát hiện nâng cao, chẳng hạn như nhận dạng dấu vân tay, thử thách JavaScript và xác minh CAPTCHA. Đây là lúc CapSolver phát huy tác dụng.

CapSolver chuyên giải quyết các thử thách Capttcha, đảm bảo web scraping không bị gián đoạn. Bằng cách tích hợp CapSolver, bạn có thể tự động giải quyết CAPTCHA và giữ cho scraper của bạn hoạt động trơn tru

Nhận Mã khuyến mãi của bạn cho các giải pháp captcha hàng đầu - CapSolver: CAPTCHA. Sau khi đổi, 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

Kết luận

Sử dụng user agent đúng là một bước quan trọng trong web scraping. Trong hướng dẫn này, chúng ta đã đề cập đến:
✅ User agent là gì và cách hoạt động của nó
Danh sách các user agent hiệu quả để scraping
✅ Cách đặt và luân chuyển user agent trong Python
Các thực tiễn tốt nhất bổ sung để không bị phát hiện

Bằng cách kết hợp việc luân chuyển user agent với các kỹ thuật chống phát hiện khác, bạn có thể thu thập dữ liệu thành công mà không bị chặn.

Câu hỏi thường gặp

1. User agent trong web scraping là gì?
User agent là một chuỗi xác định trình duyệt hoặc phần mềm khách hàng cho máy chủ web. Trong web scraping, nó được sử dụng để bắt chước hoạt động của người dùng thực và tránh bị phát hiện.

2. Web scraping cho mục đích cá nhân có bất hợp pháp không?
Web scraping thường hợp pháp cho mục đích cá nhân, nhưng bạn phải tôn trọng điều khoản dịch vụ của trang web và tránh scraping dữ liệu nhạy cảm hoặc có bản quyền.

3. Mục đích của việc luân chuyển user agent trong web scraping là gì?
Việc luân chuyển user agent giúp tránh bị phát hiện và chặn bằng cách làm cho các yêu cầu trông như đến từ các trình duyệt hoặc thiết bị khác nhau.

4. Làm thế nào tôi có thể ngăn chặn việc bị chặn trong khi web scraping?
Để tránh bị chặn, hãy sử dụng luân chuyển IP, giải quyết CAPTCHA, độ trễ giữa các yêu cầu và đảm bảo tuân thủ robots.txt của trang web.

5. Web scraping có thể ảnh hưởng đến hiệu suất của trang web không?
Có, scraping quá thường xuyên có thể làm quá tải máy chủ của trang web. Điều quan trọng là phải scraping một cách có trách nhiệm với số lượng yêu cầu hạn chế.

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

Nhận dạng ảnh bằng AI: Kiến thức cơ bản và cách giải quyết
Nhận dạng ảnh bằng AI: Kiến thức cơ bản và cách giải quyết

Tạm biệt những khó khăn với CAPTCHA hình ảnh – CapSolver Vision Engine giải quyết chúng nhanh chóng, thông minh và dễ dàng!

Logo of CapSolver

Anh Tuan

25-Apr-2025

Các User Agent Tốt Nhất để Scrape Web & Cách Sử Dụng Chúng
Các User Agent Tốt Nhất để Scrape Web & Cách Sử Dụng Chúng

Hướng dẫn về các user agent tốt nhất để scrape web và cách sử dụng hiệu quả để tránh bị phát hiện. Khám phá tầm quan trọng của user agent, các loại và cách triển khai chúng để scrape web liền mạch và không bị phát hiện.

Logo of CapSolver

Anh Tuan

07-Mar-2025

Cách giải quyết thử thách Cloudflare JS để thu thập dữ liệu web và tự động hóa
Cách giải quyết thử thách Cloudflare JS để thu thập dữ liệu web và tự động hóa

Tìm hiểu cách giải quyết thử thách JavaScript của Cloudflare để thu thập dữ liệu web và tự động hóa liền mạch. Khám phá các chiến lược hiệu quả, bao gồm sử dụng trình duyệt không đầu, luân phiên proxy, và tận dụng khả năng giải quyết CAPTCHA nâng cao của CapSolver.

Cloudflare
Logo of CapSolver

Anh Tuan

05-Mar-2025

Dấu vân tay TLS của Cloudflare: Nó là gì và cách giải quyết
Dấu vân tay TLS của Cloudflare: Nó là gì và cách giải quyết

Tìm hiểu về việc Cloudflare sử dụng dấu vân tay TLS để bảo mật, cách nó phát hiện và chặn bot, và khám phá các phương pháp hiệu quả để giải quyết vấn đề này cho các tác vụ thu thập dữ liệu web và duyệt web tự động.

Cloudflare
Logo of CapSolver

Anh Tuan

28-Feb-2025

Tại sao tôi cứ bị yêu cầu xác minh rằng tôi không phải là người máy?
Tại sao tôi cứ bị yêu cầu xác minh rằng tôi không phải là người máy?

Tìm hiểu lý do tại sao Google yêu cầu bạn xác minh rằng bạn không phải là robot và khám phá các giải pháp như sử dụng API của CapSolver để giải quyết các thử thách CAPTCHA một cách hiệu quả.

Logo of CapSolver

Anh Tuan

27-Feb-2025

Cách trích xuất dữ liệu từ trang web được bảo vệ bởi Cloudflare
Cách trích xuất dữ liệu từ trang web được bảo vệ bởi Cloudflare

Trong hướng dẫn này, chúng ta sẽ khám phá các kỹ thuật đạo đức và hiệu quả để trích xuất dữ liệu từ các trang web được bảo vệ bởi Cloudflare.

Cloudflare
Logo of CapSolver

Anh Tuan

20-Feb-2025