User-Agent Rotation Cho Web Scraping: Tại Sao Và Cách Làm

Trở lại Tin tức
Tin tức

User-Agent Rotation Cho Web Scraping: Tại Sao Và Cách Làm

User-Agent là một trong những signals đầu tiên websites check để detect bots. Bài viết hướng dẫn rotate User-Agent hiệu quả.

User-Agent Là Gì?

User-Agent là header HTTP cho biết browser và OS của bạn:

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

Tại Sao Phải Rotate?

  • 1 User-Agent + nhiều requests = suspicious
  • Default Python UA bị block ngay
  • Websites log và pattern match
  • Rotation = giả lập nhiều users

User-Agent Nên Tránh

# ❌ Default Python - bị block ngay
python-requests/2.28.0

# ❌ Quá cũ
Mozilla/5.0 (Windows NT 6.1; WOW64) Chrome/50.0

# ❌ Headless giveaway
HeadlessChrome/120.0.0.0

User-Agents Nên Dùng (2026)

user_agents = [
    # Chrome Windows
    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",
    # Chrome Mac
    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",
    # Firefox Windows
    "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0",
    # Safari Mac
    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.2 Safari/605.1.15",
    # Edge
    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36 Edg/120.0.0.0"
]

Python Implementation

import requests
import random

user_agents = [
    "Mozilla/5.0 (Windows NT 10.0; Win64; x64)...",
    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)...",
]

def get_random_headers():
    return {
        "User-Agent": random.choice(user_agents),
        "Accept": "text/html,application/xhtml+xml",
        "Accept-Language": "en-US,en;q=0.9",
        "Accept-Encoding": "gzip, deflate, br"
    }

response = requests.get(url, headers=get_random_headers())

Thư Viện Hữu Ích

# fake-useragent - tự động generate
pip install fake-useragent

from fake_useragent import UserAgent
ua = UserAgent()
print(ua.random)  # Random UA mỗi lần

Best Practices

  • Dùng UA mới nhất (update thường xuyên)
  • Match UA với Accept headers
  • Consistency trong session
  • Kết hợp với proxy rotation

VinaProxy + User-Agent Rotation

  • Residential IP + rotating UA = stealth
  • Bypass detection hiệu quả
  • Giá chỉ $0.5/GB

Dùng Thử Ngay →