API phổ quátTính năngJS Render

Hiển thị JS

Universal Scraping API là một dịch vụ truy xuất nội dung web mạnh mẽ hỗ trợ các kịch bản render và tương tác trang web phức tạp.

Cấu trúc Yêu cầu Cơ bản

{
  "actor": "unlocker.webunlocker",
  "input": {
    "url": "https://example.com",
    "js_render": false,
    "headless": false
  },
  "proxy": {
    "country": "US"
  }
}

Các Tính năng Chính

Hiển thị JavaScript

Hiển thị JavaScript cho phép xử lý nội dung được tải động và SPA (Ứng dụng Trang Đơn). Cho phép môi trường trình duyệt hoàn chỉnh, hỗ trợ các tương tác trang và yêu cầu hiển thị phức tạp hơn.

js_render=true, chúng ta sẽ sử dụng trình duyệt để yêu cầu.

{
  "actor": "unlocker.webunlocker",
  "input": {
    "url": "https://www.google.com/",
    "js_render": true
  },
  "proxy": {
    "country": "US"
  }
}

Hướng dẫn JavaScript

Cung cấp một tập hợp các hướng dẫn JavaScript mở rộng cho phép bạn tương tác động với các trang web.

Các hướng dẫn này cho phép bạn nhấp vào các phần tử, điền vào biểu mẫu, gửi biểu mẫu hoặc chờ các phần tử cụ thể xuất hiện, mang lại sự linh hoạt cho các tác vụ như nhấp vào nút “đọc thêm” hoặc gửi biểu mẫu.

{
  "actor": "unlocker.webunlocker",
  "input": {
    "url": "https://example.com",
    "js_render": true,
    "js_instructions": [
      {
        "wait_for": [
          ".dynamic-content",
          30000
        ]
        // Wait for element
      },
      {
        "click": [
          "#load-more",
          1000
        ]
        // Click element
      },
      {
        "fill": [
          "#search-input",
          "search term"
        ]
        // Fill form
      },
      {
        "keyboard": [
          "press",
          "Enter"
        ]
        // Simulate key press
      },
      {
        "evaluate": "window.scrollTo(0, document.body.scrollHeight)"
        // Execute custom JS
      }
    ]
  }
}

Dưới đây là một số hành động phổ biến bạn có thể thực hiện với Hướng dẫn JavaScript:

Tài liệu tham khảo Hướng dẫn JavaScript

Hướng dẫnCú phápMô tảVí dụ
wait_for[selector, timeout]Chờ phần tử xuất hiện{"wait_for": [".content", 30000]}
click[selector, delay]Nhấp vào phần tử{"click": [".button", 1000]}
fill[selector, value]Điền vào biểu mẫu{"fill": ["#input", "text"]}
waitmillisecondsThời gian chờ cố định{"wait": 2000}
evaluatejavascript_codeThực thi mã JS{"evaluate": "console.log('test')"}
keyboard[action, value, delay?]Thao tác bàn phímXem bảng thao tác bàn phím bên dưới

Thao tác Bàn phím

Thao tácCú phápMô tảVí dụ
Nhấn phím["press", keyInput]Nhấn một keyInput cụ thể{"keyboard": ["press", "Enter"]}
Gõ văn bản["type", text, delay?]Gõ văn bản với độ trễ tùy chọn{"keyboard": ["type", "Hello", 20]}
Nhấn giữ["down", key]Giữ phím{"keyboard": ["down", "Shift"]}
Nhả phím["up", key]Nhả phím{"keyboard": ["up", "Shift"]}

Các loại KeyInput đặc biệt được hỗ trợ: https://pptr.dev/api/puppeteer.keyinput

Điều khiển Tài nguyên

Hệ thống điều khiển tải tài nguyên để tối ưu hóa hiệu suất và sử dụng băng thông.

{
  "actor": "unlocker.webunlocker",
  "input": {
    "url": "https://example.com",
    "js_render": true,
    "block": {
      "resources": [
        "Image",
        "Font",
        "Stylesheet",
        "Script"
      ],
      "urls": [
        // Optional, URL pattern-based blocking
        "*.analytics.com/*",
        "*/ads/*"
      ]
    }
  }
}

Tài liệu tham khảo Loại Tài nguyên Hoàn chỉnh:

Loại Tài nguyênMô tảTác động
DocumentTài liệu chính và iframeNội dung trang cốt lõi
StylesheetTệp CSSKiểu trang và bố cục
ImageHình ảnh và biểu tượngNội dung hình ảnh
MediaTài nguyên âm thanh và videoNội dung đa phương tiện
FontPhông chữ webHiển thị văn bản
ScriptTệp JavaScriptChức năng trang
TextTrackPhụ đề và chú thích videoTrợ năng phương tiện
XHRCuộc gọi XMLHttpRequestYêu cầu không đồng bộ cũ
FetchYêu cầu Fetch APIYêu cầu không đồng bộ hiện đại
PrefetchTài nguyên được tải trướcTối ưu hóa hiệu suất
EventSourceSự kiện do máy chủ gửiCập nhật thời gian thực
WebSocketKết nối WebSocketGiao tiếp hai chiều
ManifestBản kê khai ứng dụng webCấu hình PWA
SignedExchangeTrao đổi HTTP đã kýTính xác thực nội dung
PingYêu cầu PingPhân tích và theo dõi
CSPViolationReportBáo cáo vi phạm CSPGiám sát bảo mật
PreflightYêu cầu kiểm tra trước CORSBảo mật chéo nguồn
OtherTài nguyên không được phân loạiKhác

Ví dụ sử dụng:

{
  "actor": "unlocker.webunlocker",
  "input": {
    "url": "https://example.com",
    "js_render": true,
    "block": {
      "resources": [
        "Image",
        "Font",
        "Stylesheet",
        "Script",
        "Media",
        "Ping",
        "Prefetch"
      ]
    }
  }
}

Thực tiễn tốt nhất cho việc chặn Tài nguyên:

  1. Tối ưu hóa hiệu suất

    • Chỉ bật js_render khi cần thiết
    • Sử dụng việc chặn tài nguyên một cách khôn ngoan, Chặn các tài nguyên không cần thiết để tải nhanh hơn
    • Cân nhắc việc chặn PrefetchPing để giảm sử dụng mạng
    • Giữ Document và các tài nguyên Script quan trọng không bị chặn
  2. Quản lý băng thông

    • Chặn ImageMedia đối với các trang sử dụng nhiều băng thông
    • Cân nhắc việc chặn Font để sử dụng phông chữ hệ thống thay thế
  3. Nâng cao độ ổn định

    • Thực hiện các cơ chế thử lại yêu cầu
    • Thêm logic xử lý lỗi
    • Sử dụng wait_for thay vì wait cố định
  4. Hiệu quả tài nguyên

    • Tải tài nguyên theo yêu cầu
    • Đóng các kết nối không cần thiết ngay lập tức

Lưu ý: Chuỗi loại tài nguyên phân biệt chữ hoa chữ thường. Sử dụng khớp chính xác như trong bảng tham chiếu.