🥳Tham gia Cộng đồng Scrapelessnhận thử nghiệm miễn phí của bạn để truy cập Bộ công cụ Web Scraping mạnh mẽ của chúng tôi!
Quay lại blog

Cập nhật API Scraping Toàn cầu: Định dạng phản hồi phong phú hơn để nâng cao trải nghiệm lập trình viên!

Alex Johnson
Alex Johnson

Senior Web Scraping Engineer

12-Jun-2025

Trong các tình huống thu thập dữ liệu web hiện đại, việc chỉ lấy các trang HTML thường không đáp ứng đủ nhu cầu kinh doanh khi phải đối mặt với các cơ chế chống thu thập dữ liệu tinh vi. Tại Scrapeless, chúng tôi cam kết nâng cao khả năng sản phẩm của mình từ góc độ của các nhà phát triển.

Hôm nay, chúng tôi rất vui mừng thông báo một cập nhật lớn cho một trong những dịch vụ cốt lõi của Scrapeless — API Thu thập Dữ liệu Toàn cầu. Web Unlocker bây giờ hỗ trợ nhiều định dạng phản hồi khác nhau! Cải tiến này tăng cường đáng kể tính linh hoạt của API, mang đến trải nghiệm thu thập dữ liệu hiệu quả và thích ứng hơn cho cả người dùng doanh nghiệp và các nhà phát triển.

Tại Sao Chúng Tôi Thực Hiện Cập Nhật?

Trước đây, API Thu thập Dữ liệu Toàn cầu mặc định trả về nội dung trang HTML, điều này hoạt động tốt cho việc truy cập nhanh đến các trang hoặc trang web không mã hóa hoặc có các biện pháp chống thu thập dữ liệu yếu. Tuy nhiên, khi yêu cầu tự động hóa từ người dùng ngày càng tăng, chúng tôi nhận thấy rằng nhiều người dùng vẫn phải xử lý thủ công các cấu trúc dữ liệu, làm sạch nội dung và trích xuất các phần tử sau khi đã lấy HTML — điều này tạo ra gánh nặng phát triển không cần thiết. Liệu chúng tôi có thể đơn giản hóa quy trình này để cung cấp nội dung đã được xử lý trước trong một bước không?

Bây giờ bạn có thể!

Chúng tôi đã cải tiến logic phản hồi. Bằng cách cấu hình tham số response_type, các nhà phát triển có thể linh hoạt chỉ định định dạng dữ liệu mong muốn. Dù bạn cần HTML thô, văn bản thuần, hay metadata có cấu trúc, chỉ cần cấu hình tham số đơn giản là đủ.

Bây Giờ, Các Định Dạng Phản Hồi Bạn Có Thể Lấy:

Các định dạng hiện tại được hỗ trợ bao gồm nhưng không giới hạn ở:

  1. Bộ lọc đầu ra JSON: Sử dụng tham số outputs để lọc dữ liệu ở định dạng JSON. Các loại bộ lọc được cho phép bao gồm email, phone_numbers, headings, và 9 loại khác, với kết quả trả về ở định dạng JSON có cấu trúc.
  2. Nhiều định dạng trả về: Ngoài việc lọc JSON, bạn có thể trực tiếp chỉ định định dạng phản hồi bằng cách thêm tham số response_type vào yêu cầu của bạn (ví dụ: response_type=plaintext).
    Các định dạng hiện tại được hỗ trợ bao gồm:
  • HTML: Trích xuất nội dung trang ở định dạng HTML (lý tưởng cho các trang tĩnh).
  • Plaintext: Trả về nội dung đã thu thập dưới dạng văn bản thuần, không có thẻ HTML hoặc định dạng Markdown — hoàn hảo cho việc xử lý hoặc phân tích văn bản.
  • Markdown: Trích xuất nội dung trang ở định dạng Markdown (tối ưu cho các trang dựa trên Markdown tĩnh), giúp việc đọc và xử lý dễ dàng hơn.
  • PNG/JPEG: Bằng cách đặt response_type=png, chụp nhanh màn hình của trang mục tiêu và trả về ở định dạng PNG hoặc JPEG (có tùy chọn cho ảnh chụp màn hình toàn trang).

Lưu ý: Tham số mặc định response_type là html.


Hãy Xem Các Ví Dụ

1. Lọc giá trị trả về JSON:

Bạn có thể sử dụng tham số outputs để lọc dữ liệu ở định dạng JSON. Khi tham số này được thiết lập, loại phản hồi sẽ gán cố định thành JSON.

Tham số này chấp nhận một danh sách tên bộ lọc được ngăn cách bằng dấu phẩy và trả về dữ liệu ở định dạng JSON có cấu trúc. Các loại bộ lọc được hỗ trợ bao gồm: phone_numbers, headings, images, audios, videos, links, menus, hashtags, emails, metadata, tables, và favicon.

Mã mẫu dưới đây minh họa cách lấy tất cả thông tin hình ảnh trên trang chủ của Scrapeless:

Javascript

JavaScript Copy
const axios = require('axios');
const fs = require('fs');

(async () => {
    const payload = {
        actor: "unlocker.webunlocker",
        input: {
            url: "https://www.scrapeless.com",
            js_render: true,
            outputs: "images"
        },
        proxy: {
            country: "ANY"
        }
    };

    const response = await axios.post("https://api.scrapeless.com/api/v1/unlocker/request", payload, {
        headers: {
            "x-api-token": "API Key",
            "Content-Type": "application/json"
        },
        timeout: 60000
    });

    if (response.data?.code === 200) {
        fs.writeFileSync('outputs.json', response.data.data, 'utf8');
    }
})();

Python

Python Copy
import requests

payload = {
    "actor": "unlocker.webunlocker",
    "input": {
        "url": "https://www.scrapeless.com",
        "js_render": True,
        "outputs": "images",
    },
    "proxy": {
        "country": "ANY"
    }
}

response = requests.post(
    "https://api.scrapeless.com/api/v1/unlocker/request",
    json=payload,
    headers={
        "x-api-token": "API Key",
        "Content-Type": "application/json"
    },
    timeout=60
)

if response.json()["code"] == 200:
    with open('outputs.json', 'w', encoding='utf-8') as f:
        f.write(response.json()["data"])
  • Kết quả:
JSON Copy
{
  "images": [
    "data:image/svg+xml;base64,PHN2ZyBzdHJva2U9IiNGRkZGRkYiIGZpbGw9IiNGRkZGRkYiIHN0cm9rZS13aWR0aD0iMCIgdmlld0JveD0iMCAwIDI0IDI0IiBoZWlnaHQ9IjIwMHB4IiB3aWR0aD0iMjAwcHgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHJlY3Qgd2lkdGg9IjIwIiBoZWlnaHQ9IjIwIiB4PSIyIiB5PSIyIiBmaWxsPSJub25lIiBzdHJva2Utd2lkdGg9IjIiIHJ4PSIyIj48L3JlY3Q+PC9zdmc+Cg==",
    "https://www.scrapeless.com/_next/image?url=%2Fassets%2Fimages%2Fcode%2Fcode-l.jpg&w=3840&q=75",
plaintext Copy
"https://www.scrapeless.com/_next/image?url=%2Fassets%2Fimages%2Fregulate-compliance.png&w=640&q=75",
    "https://www.scrapeless.com/_next/image?url=https%3A%2F%2Fassets.scrapeless.com%2Fprod%2Fimages%2Fauthor-avatars%2Falex-johnson.png&w=48&q=75",
    "https://www.scrapeless.com/_next/image?url=https%3A%2F%2Fassets.scrapeless.com%2Fprod%2Fposts%2Fdeep-serp-api-online%2Fd723e1e516e3dd956ba31c9671cde8ea.jpeg&w=3840&q=75",
    "https://www.scrapeless.com/_next/image?url=https%3A%2F%2Fassets.scrapeless.com%2Fprod%2Fposts%2Fscrapeless-web-scraping-toolkit%2Fac20e5f6aaec5c78c5076cb254c2eb78.png&w=3840&q=75",
    "https://www.scrapeless.com/_next/image?url=https%3A%2F%2Fassets.scrapeless.com%2Fprod%2Fimages%2Fauthor-avatars%2Femily-chen.png&w=48&q=75",
    "https://www.scrapeless.com/_next/image?url=https%3A%2F%2Fassets.scrapeless.com%2Fprod%2Fposts%2Fgoogle-shopping-scrape%2F251f14aedd946d0918d29ef710a1b385.png&w=3840&q=75"
  ]
}

2. HTML

Thêm response_type=html vào yêu cầu để trả về nội dung dạng văn bản được định dạng HTML:

Javascript

JavaScript Copy
const axios = require('axios');
const fs = require('fs');
 
(async () => {
    const payload = {
        actor: "unlocker.webunlocker",
        input: {
            url: "https://www.example.com",
            js_render: true,
            response_type: "html"
        },
        proxy: {
            country: "ANY"
        }
    };
 
    const response = await axios.post("https://api.scrapeless.com/api/v1/unlocker/request", payload, {
        headers: {
            "x-api-token": "API Key",
            "Content-Type": "application/json"
        },
        timeout: 60000
    });
 
    if (response.data?.code === 200) {
        fs.writeFileSync('response.html', response.data.data, 'utf8');
    }
})();

Python

Python Copy
import requests
 
payload = {
    "actor": "unlocker.webunlocker",
    "input": {
        "url": "https://www.example.com",
        "js_render": True,
        "response_type": "html"
    },
    "proxy": {
        "country": "ANY"
    }
}
 
response = requests.post(
    "https://api.scrapeless.com/api/v1/unlocker/request",
    json=payload,
    headers={
        "x-api-token": "API Key",
        "Content-Type": "application/json"
    },
    timeout=60
)
 
if response.json()["code"] == 200:
    with open('response.html', 'w', encoding='utf-8') as f:
        f.write(response.json()["data"])
  • Kết quả:
HTML Copy
<!DOCTYPE html><html><head>
    <title>Example Domain</title>
 
    <meta charset="utf-8">
    <meta http-equiv="Content-type" content="text/html; charset=utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <style type="text/css">
    body {
        background-color: #f0f0f2;
        margin: 0;
        padding: 0;
        font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
 
    }
    div {
        width: 600px;
        margin: 5em auto;
        padding: 2em;
        background-color: #fdfdff;
        border-radius: 0.5em;
        box-shadow: 2px 3px 7px 2px rgba(0,0,0,0.02);
    }
    a:link, a:visited {
        color: #38488f;
        text-decoration: none;
    }
    @media (max-width: 700px) {
        div {
            margin: 0 auto;
            width: auto;
        }
    }
    </style>
</head>
 
<body>
<div>
    <h1>Example Domain</h1>
    <p>Miền này được sử dụng trong các ví dụ minh họa trong tài liệu. Bạn có thể sử dụng miền này
    trong văn học mà không cần phối hợp trước hoặc yêu cầu xin phép.</p>
    <p><a href="https://www.iana.org/domains/example">Thêm thông tin...</a></p>
</div>
 
</body></html>

3. Plaintext

Chức năng Plain Text là một tùy chọn đầu ra trả về nội dung thu thập được dưới dạng văn bản thuần túy thay vì HTML hoặc Markdown. Điều này đơn giản hóa quá trình trích xuất nội dung và giúp việc xử lý hoặc phân tích văn bản trở nên thuận tiện hơn.

Ví dụ sau đây cho thấy cách lấy nội dung văn bản thuần túy của một trang.

Javascript

JavaScript Copy
const axios = require('axios');
const fs = require('fs');

(async () => {
    const payload = {
        actor: "unlocker.webunlocker",
        input: {
            url: "https://apidocs.scrapeless.com/llms.txt",
            js_render: true,
            response_type: "plaintext",
        },
        proxy: {
            country: "ANY"
        }
    };

    const response = await axios.post("https://api.scrapeless.com/api/v1/unlocker/request", payload, {
        headers: {
            "x-api-token": "API Key",
            "Content-Type": "application/json"
        },
        timeout: 60000
    });

    if (response.data?.code === 200) {
        fs.writeFileSync('response.txt', response.data.data, 'utf8');
    }
})();

Python

Python Copy
import requests

payload = {
    "actor": "unlocker.webunlocker",
    "input": {
        "url": "https://apidocs.scrapeless.com/llms.txt",
        "js_render": True,
        "response_type": "plaintext",
    },
    "proxy": {
        "country": "ANY"
    }
}
Plain Text Copy
# API Scrapeless

## Tài liệu
- Trình duyệt thu thập [API CDP](https://apidocs.scrapeless.com/doc-801748.md): 
- API thu thập > shopee [Danh sách Diễn viên](https://apidocs.scrapeless.com/doc-754333.md): 
- API thu thập > amazon [Tham số API](https://apidocs.scrapeless.com/doc-857373.md): 
- API thu thập > tìm kiếm google [Tham số API](https://apidocs.scrapeless.com/doc-800321.md): 
- API thu thập > xu hướng google [Tham số API](https://apidocs.scrapeless.com/doc-796980.md): 
- API thu thập > chuyến bay google [Tham số API](https://apidocs.scrapeless.com/doc-796979.md): 
- API thu thập > biểu đồ chuyến bay google [Tham số API](https://apidocs.scrapeless.com/doc-908741.md): 
- API thu thập > bản đồ google [Tham số API(Bản đồ Google)](https://apidocs.scrapeless.com/doc-834792.md): 
- API thu thập > bản đồ google [Tham số API(Tự động hoàn thành Bản đồ Google)](https://apidocs.scrapeless.com/doc-834799.md): 
- API thu thập > bản đồ google [Tham số API(Đánh giá Người đóng góp Bản đồ Google)](https://apidocs.scrapeless.com/doc-834806.md): 
- API thu thập > bản đồ google [Tham số API(Hướng dẫn Bản đồ Google)](https://apidocs.scrapeless.com/doc-834821.md): 
- API thu thập > bản đồ google [Tham số API(Đánh giá Bản đồ Google)](https://apidocs.scrapeless.com/doc-834831.md): 
- API thu thập > scholar google [Tham số API(Scholar Google)](https://apidocs.scrapeless.com/doc-842638.md): 
- API thu thập > scholar google [Tham số API(Tác giả Scholar Google)](https://apidocs.scrapeless.com/doc-842645.md): 
- API thu thập > scholar google [Tham số API(Tin trích dẫn Scholar Google)](https://apidocs.scrapeless.com/doc-842647.md): 
- API thu thập > scholar google [Tham số API(Hồ sơ Scholar Google)](https://apidocs.scrapeless.com/doc-842649.md): 
- API thu thập > việc làm google [Tham số API](https://apidocs.scrapeless.com/doc-850038.md): 
- API thu thập > mua sắm google [Tham số API](https://apidocs.scrapeless.com/doc-853695.md): 
- API thu thập > khách sạn google [Tham số API](https://apidocs.scrapeless.com/doc-865231.md): 
- API thu thập > khách sạn google [Các loại bất động sản cho thuê Google hỗ trợ](https://apidocs.scrapeless.com/doc-890578.md): 
- API thu thập > khách sạn google [Các loại bất động sản khách sạn Google hỗ trợ](https://apidocs.scrapeless.com/doc-890580.md): 
- API thu thập > khách sạn google [Tiện nghi cho thuê Google hỗ trợ](https://apidocs.scrapeless.com/doc-890623.md): 
- API thu thập > khách sạn google [Tiện nghi khách sạn Google hỗ trợ](https://apidocs.scrapeless.com/doc-890631.md): 
- API thu thập > tin tức google [Tham số API](https://apidocs.scrapeless.com/doc-866643.md): 
- API thu thập > google lens [Tham số API](https://apidocs.scrapeless.com/doc-866644.md): 
- API thu thập > tài chính google [Tham số API](https://apidocs.scrapeless.com/doc-873763.md): 
- API thu thập > sản phẩm google [Tham số API](https://apidocs.scrapeless.com/doc-880407.md): 
- API thu thập [cửa hàng google play](https://apidocs.scrapeless.com/folder-3277506.md): 
- API thu thập > cửa hàng google play [Tham số API](https://apidocs.scrapeless.com/doc-882690.md): 
- API thu thập > cửa hàng google play [Các danh mục Google Play hỗ trợ](https://apidocs.scrapeless.com/doc-882822.md): 
- API thu thập > quảng cáo google [Tham số API](https://apidocs.scrapeless.com/doc-881439.md): 
- API thu thập toàn cầu [Tài liệu JS Render](https://apidocs.scrapeless.com/doc-801406.md): 

## Tài liệu API
- Người dùng [Lấy thông tin người dùng](https://apidocs.scrapeless.com/api-11949851.md): Lấy thông tin cơ bản về người dùng hiện tại đã được xác thực, bao gồm số dư tài khoản và chi tiết kế hoạch đăng ký.
- Trình duyệt thu thập [Kết nối](https://apidocs.scrapeless.com/api-11949901.md): 
- Trình duyệt thu thập [Phiên đang chạy](https://apidocs.scrapeless.com/api-16890953.md): Lấy tất cả các phiên đang chạy
- Trình duyệt thu thập [URL trực tiếp](https://apidocs.scrapeless.com/api-16891208.md): Lấy URL trực tiếp của một phiên đang chạy theo ID nhiệm vụ phiên
- API thu thập > shopee [Sản phẩm Shopee](https://apidocs.scrapeless.com/api-11953650.md): 
- API thu thập > shopee [Tìm kiếm Shopee](https://apidocs.scrapeless.com/api-11954010.md): 
- API thu thập > shopee [Rcmd Shopee](https://apidocs.scrapeless.com/api-11954111.md): 
- API thu thập > các trang web br [Solucoes cnpjreva](https://apidocs.scrapeless.com/api-11954435.md): URL mục tiêu `https://solucoes.receita.fazenda.gov.br/servicos/cnpjreva/valida_recaptcha.asp`
- API thu thập > các trang web br [Solucoes certidaointernet](https://apidocs.scrapeless.com/api-12160439.md): URL mục tiêu `https://solucoes.receita.fazenda.gov.br/Servicos/certidaointernet/pj/emitir`
Copy
### 4. Markdown

Bằng cách thêm `response_type=markdown` vào các tham số yêu cầu, API Lấy thông tin Tổng hợp Scrapeless sẽ trả về nội dung của một trang cụ thể dưới định dạng Markdown.

Ví dụ sau đây cho thấy hiệu ứng markdown của trang [Hướng dẫn Nhanh Trình Duyệt Lấy Thông Tin](https://docs.scrapeless.com/en/scraping-browser/quickstart/getting-started). Chúng ta đầu tiên sử dụng kiểm tra trang để lấy bộ chọn CSS của bảng.

![Trang Hướng dẫn Nhanh Trình Duyệt Lấy Thông Tin](https://assets.scrapeless.com/prod/posts/response-formats-update/c99d28d532bb44eb7e09ede40754ee09.png)

Trong ví dụ này, bộ chọn CSS mà chúng ta nhận được là: `#__next > div:nth-child(3) > div._mx-auto._flex._max-w-\[90rem\] > article > main > table`. Sau đây là mã mẫu hoàn chỉnh.

> Javascript

```JavaScript
const axios = require('axios');
const fs = require('fs');

(async () => {
    const payload = {
        actor: "unlocker.webunlocker",
        input: {
            url: "https://docs.scrapeless.com/en/scraping-browser/quickstart/getting-started",
            js_render: true,
            response_type: "markdown",
            selector: "#__next > div:nth-child(3) > div._mx-auto._flex._max-w-\[90rem\] > article > main > table", // Bộ chọn CSS của phần tử bảng trang
        },
        proxy: {
            country: "ANY"
        }
    };

    const response = await axios.post("https://api.scrapeless.com/api/v1/unlocker/request", payload, {
        headers: {
            "x-api-token": "API Key",
            "Content-Type": "application/json"
        },
        timeout: 60000
    });

    if (response.data?.code === 200) {
        fs.writeFileSync('response.md', response.data.data, 'utf8');
    }
})();

Python

Python Copy
import requests

payload = {
    "actor": "unlocker.webunlocker",
    "input": {
        "url": "https://docs.scrapeless.com/en/scraping-browser/quickstart/getting-started",
        "js_render": True,
        "response_type": "markdown",
        "selector": "#__next > div:nth-child(3) > div._mx-auto._flex._max-w-\[90rem\] > article > main > table", # Bộ chọn CSS của phần tử bảng trang
    },
    "proxy": {
        "country": "ANY"
    }
}

response = requests.post(
    "https://api.scrapeless.com/api/v1/unlocker/request",
    json=payload,
    headers={
        "x-api-token": "API Key",
        "Content-Type": "application/json"
    },
    timeout=60
)

if response.json()["code"] == 200:
    with open('response.md', 'w', encoding='utf-8') as f:
        f.write(response.json()["data"])

Hiển thị nội dung bảng đã thu thập dưới định dạng markdown:

Markdown Copy
| Tên Tham Số | Loại | Mô Tả |
| --- | --- | --- |
| token | chuỗi | Khóa API được tạo ra trong bảng điều khiển. |
| session_ttl | số | Điều chỉnh thời gian phiên và tự động đóng phiên trình duyệt sau khi hết thời gian. Đo bằng giây (s), mặc định là 180 giây (3 phút), có thể tùy chỉnh từ 60 giây (1 phút) đến 900 giây (tối đa 15 phút, nhưng có thể đặt thời gian lâu hơn). Khi TTL cụ thể đạt được, phiên sẽ hết hạn và Trình Duyệt Lấy Thông Tin sẽ đóng phiên trình duyệt để giải phóng tài nguyên. |
| session_name | chuỗi | Đặt một tên cho phiên của bạn để dễ dàng tìm kiếm và xem trong danh sách phiên lịch sử. |
| session_recording | boolean | Có bật ghi hình phiên hay không. Khi bật, toàn bộ quá trình thực hiện phiên trình duyệt sẽ được ghi lại tự động, và sau khi phiên kết thúc, nó có thể được phát lại và xem trong chi tiết danh sách phiên lịch sử. Mặc định là false. |
| proxy_url | chuỗi | Dùng để thiết lập URL proxy cho trình duyệt, ví dụ: http://user:pass@ip:port. Nếu tham số này được đặt, tất cả các tham số proxy_* khác sẽ bị bỏ qua.- 💡Chức năng proxy tùy chỉnh hiện chỉ có sẵn cho người dùng đăng ký Doanh Nghiệp và Doanh Nghiệp Tăng Cường Nâng Cao Nâng Cấp Ngay- 💡Người dùng cấp Doanh Nghiệp có thể liên hệ với chúng tôi để sử dụng proxy tùy chỉnh. |
| proxy_country | string | Đặt quốc gia/khu vực mục tiêu cho proxy, gửi yêu cầu qua địa chỉ IP từ khu vực đó. Bạn có thể chỉ định mã quốc gia (ví dụ: US cho Hoa Kỳ, GB cho Vương quốc Anh, ANY cho bất kỳ quốc gia nào). Xem mã quốc gia để biết tất cả các tùy chọn được hỗ trợ. |
| fingerprint | string | Dấu vân tay trình duyệt là một “dấu vân tay kỹ thuật số” gần như duy nhất được tạo ra bằng cách sử dụng thông tin cấu hình trình duyệt và thiết bị của bạn, có thể được sử dụng để theo dõi hoạt động trực tuyến của bạn ngay cả khi không có cookie. May mắn thay, cấu hình dấu vân tay trong Scraping Browser là tùy chọn. Chúng tôi cung cấp khả năng tùy chỉnh sâu sắc về dấu vân tay trình duyệt, chẳng hạn như các tham số cốt lõi như tác nhân người dùng trình duyệt, múi giờ, ngôn ngữ và độ phân giải màn hình, và hỗ trợ mở rộng chức năng thông qua các tham số khởi chạy tùy chỉnh. Phù hợp cho quản lý nhiều tài khoản, thu thập dữ liệu và các tình huống bảo vệ quyền riêng tư, việc sử dụng trình duyệt Chromium của scrapeless hoàn toàn tránh được phát hiện. Theo mặc định, dịch vụ Scraping Browser của chúng tôi tạo ra một dấu vân tay ngẫu nhiên cho mỗi phiên. Tham khảo |

5. PNG/JPEG

Bằng cách thêm response_type=png vào yêu cầu, bạn có thể chụp ảnh màn hình của trang mục tiêu và trả về hình ảnh png hoặc jpeg. Khi kết quả phản hồi được đặt thành png hoặc jpeg, bạn có thể đặt xem kết quả trả về có toàn màn hình hay không bằng cách sử dụng tham số response_image_full_page=true. Giá trị mặc định của tham số này là false.

Ví dụ mã dưới đây cho thấy cách lấy ảnh chụp màn hình của một khu vực được chỉ định trên trang chủ Scrapeless. Trước tiên, chúng tôi tìm selector CSS cho khu vực mà chúng tôi muốn chụp hình ảnh.

tìm selector CSS

Dưới đây là mã chặn:

Javascript

JavaScript Copy
const axios = require('axios');
const fs = require('fs');

(async () => {
    const payload = {
        actor: "unlocker.webunlocker",
        input: {
            url: "https://www.scrapeless.com/en",
            js_render: true,
            response_type: "png",
            selector: "body > main > div > section > div > div.banner.px-web-gap-5.py-web-gap-10.flex.flex-col.border-b.border-\(--web-landing-stroke-3-primary\)", // selector CSS của phần tử bảng trang
        },
        proxy: {
            country: "ANY"
        }
    };

    const response = await axios.post("https://api.scrapeless.com/api/v1/unlocker/request", payload, {
        headers: {
            "x-api-token": "API Key",
            "Content-Type": "application/json"
        },
        timeout: 60000
    });

    if (response.data?.code === 200) {
        fs.writeFileSync('response.png',Buffer.from(response.data.data, 'base64'));
    }
})(); 

Python

Python Copy
import requests
 
payload = {
    "actor": "unlocker.webunlocker",
    "input": {
        "url": "https://www.scrapeless.com/en",
        "js_render": True,
        "response_type": "png",
        "selector": "body > main > div > section > div > div.banner.px-web-gap-5.py-web-gap-10.flex.flex-col.border-b.border-\(--web-landing-stroke-3-primary\)", # selector CSS của phần tử bảng trang
    },
    "proxy": {
        "country": "ANY"
    }
}
 
response = requests.post(
    "https://api.scrapeless.com/api/v1/unlocker/request",
    json=payload,
    headers={
        "x-api-token": "API Key",
        "Content-Type": "application/json"
    },
    timeout=60
)
 
if response.json()["code"] == 200:
    with open('response.png', 'wb') as f:
        content = base64.b64decode(response.json()["data"])
        f.write(content)
  • Kết quả trả về PNG:
Kết quả PNG

👉 Truy cập Tài liệu Scrapeless để tìm hiểu thêm
👉 Kiểm tra tài liệu API ngay bây giờ: JS Render

Các kịch bản sử dụng được bao phủ hoàn toàn

Cập nhật này đặc biệt phù hợp cho:

  • Ứng dụng trích xuất nội dung (như tạo tóm tắt, thu thập thông tin tình báo)
  • Crawling dữ liệu SEO (như phân tích meta, dữ liệu có cấu trúc)
  • Nền tảng tổng hợp tin tức (nhanh chóng trích xuất văn bản và tác giả)
  • Công cụ phân tích và giám sát liên kết (trích xuất href, thông tin nofollow)

Dù bạn muốn nhanh chóng thu thập văn bản hay muốn dữ liệu có cấu trúc, cập nhật này có thể giúp bạn có được nhiều kết quả hơn với ít nỗ lực hơn.

Trải nghiệm ngay bây giờ

Chức năng này đã được ra mắt hoàn toàn trên Scrapeless. Không cần quyền truy cập bổ sung hoặc kế hoạch nâng cấp. Chỉ cần giới hạn tham số đầu ra hoặc truyền tham số response_type để trải nghiệm định dạng trả dữ liệu mới này!
Scrapeless luôn cam kết xây dựng một nền tảng dữ liệu web thông minh, ổn định và dễ sử dụng. Cập nhật này chỉ là một bước tiến nữa. Chúng tôi chào đón trải nghiệm và phản hồi của bạn, hãy cùng nhau làm cho việc tiếp cận dữ liệu web trở nên dễ dàng hơn.

🔗 Thử nghiệm API Scraping Universal của Scrapeless ngay bây giờ

📣 Tham gia cộng đồng để nhận được các cập nhật và mẹo thực tế sớm nhất!

Tại Scrapless, chúng tôi chỉ truy cập dữ liệu có sẵn công khai trong khi tuân thủ nghiêm ngặt các luật, quy định và chính sách bảo mật trang web hiện hành. Nội dung trong blog này chỉ nhằm mục đích trình diễn và không liên quan đến bất kỳ hoạt động bất hợp pháp hoặc vi phạm nào. Chúng tôi không đảm bảo và từ chối mọi trách nhiệm đối với việc sử dụng thông tin từ blog này hoặc các liên kết của bên thứ ba. Trước khi tham gia vào bất kỳ hoạt động cạo nào, hãy tham khảo ý kiến ​​cố vấn pháp lý của bạn và xem xét các điều khoản dịch vụ của trang web mục tiêu hoặc có được các quyền cần thiết.

Bài viết phổ biến nhất

Danh mục