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ẫn | Cú pháp | Mô 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"]} |
wait | milliseconds | Thời gian chờ cố định | {"wait": 2000} |
evaluate | javascript_code | Thực thi mã JS | {"evaluate": "console.log('test')"} |
keyboard | [action, value, delay?] | Thao tác bàn phím | Xem bảng thao tác bàn phím bên dưới |
Thao tác Bàn phím
Thao tác | Cú pháp | Mô 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ên | Mô tả | Tác động |
---|---|---|
Document | Tài liệu chính và iframe | Nội dung trang cốt lõi |
Stylesheet | Tệp CSS | Kiểu trang và bố cục |
Image | Hình ảnh và biểu tượng | Nội dung hình ảnh |
Media | Tài nguyên âm thanh và video | Nội dung đa phương tiện |
Font | Phông chữ web | Hiển thị văn bản |
Script | Tệp JavaScript | Chức năng trang |
TextTrack | Phụ đề và chú thích video | Trợ năng phương tiện |
XHR | Cuộc gọi XMLHttpRequest | Yêu cầu không đồng bộ cũ |
Fetch | Yêu cầu Fetch API | Yêu cầu không đồng bộ hiện đại |
Prefetch | Tài nguyên được tải trước | Tối ưu hóa hiệu suất |
EventSource | Sự kiện do máy chủ gửi | Cập nhật thời gian thực |
WebSocket | Kết nối WebSocket | Giao tiếp hai chiều |
Manifest | Bản kê khai ứng dụng web | Cấu hình PWA |
SignedExchange | Trao đổi HTTP đã ký | Tính xác thực nội dung |
Ping | Yêu cầu Ping | Phân tích và theo dõi |
CSPViolationReport | Báo cáo vi phạm CSP | Giám sát bảo mật |
Preflight | Yêu cầu kiểm tra trước CORS | Bảo mật chéo nguồn |
Other | Tài nguyên không được phân loại | Khá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:
-
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
Prefetch
vàPing
để giảm sử dụng mạng - Giữ
Document
và các tài nguyênScript
quan trọng không bị chặn
- Chỉ bật
-
Quản lý băng thông
- Chặn
Image
vàMedia
đố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ế
- Chặn
-
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
-
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.