API Scraping: Cách Tìm Và Sử Dụng Hidden APIs

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

API Scraping: Cách Tìm Và Sử Dụng Hidden APIs

Nhiều websites có hidden APIs trả về JSON thay vì HTML. Scrape API nhanh và dễ hơn nhiều so với parse HTML.

Tại Sao API Tốt Hơn HTML?

  • Nhanh hơn: Payload nhỏ, không cần parse
  • Sạch hơn: JSON structured data
  • Ổn định hơn: API ít thay đổi hơn UI
  • Ít bị detect: Như mobile app request

Cách Tìm Hidden APIs

1. Browser DevTools

  1. Mở website, F12 → Network tab
  2. Filter: XHR/Fetch
  3. Thực hiện action (search, load more)
  4. Tìm requests trả về JSON

2. Dấu Hiệu Nhận Biết

  • URL chứa /api/, /v1/, /graphql
  • Response type: application/json
  • Request có Bearer token hoặc API key

Ví Dụ: Tìm API Shopee

# DevTools → Network → XHR
# Tìm được: https://shopee.vn/api/v4/search/search_items

import requests

url = "https://shopee.vn/api/v4/search/search_items"
params = {
    "keyword": "iphone",
    "limit": 50,
    "newest": 0
}

headers = {
    "User-Agent": "Mozilla/5.0...",
    "Referer": "https://shopee.vn"
}

response = requests.get(url, params=params, headers=headers)
data = response.json()

for item in data['items']:
    print(item['name'], item['price'])

GraphQL APIs

import requests

url = "https://api.example.com/graphql"
query = """
{
    products(first: 10) {
        edges {
            node {
                name
                price
            }
        }
    }
}
"""

response = requests.post(url, json={"query": query})
data = response.json()

Xử Lý Authentication

# Bearer Token
headers = {
    "Authorization": "Bearer YOUR_TOKEN"
}

# API Key
params = {
    "api_key": "YOUR_KEY"
}

# Cookie-based
session = requests.Session()
session.get("https://example.com/login")  # Get cookies
response = session.get("https://example.com/api/data")

Tips

  • Check mobile app traffic (Burp Suite, mitmproxy)
  • APIs thường có rate limits
  • Respect authentication requirements
  • Cache responses để giảm requests

VinaProxy + API Scraping

  • Bypass geo-restricted APIs
  • Rotate IPs để tránh rate limits
  • Giá chỉ $0.5/GB

Dùng Thử Ngay →