🎯 Trình duyệt đám mây tùy chỉnh, chống phát hiện được hỗ trợ bởi Chromium tự phát triển, thiết kế dành cho trình thu thập dữ liệu webtác nhân AI. 👉Dùng thử ngay
Quay lại blog

API Trích xuất Hình ảnh Google: Đọc Dữ liệu Hình ảnh dưới dạng JSON

Emily Chen
Emily Chen

Advanced Data Extraction Specialist

10-Jun-2026

Những điểm chính:

  • Một POST, không cần trình duyệt. Dữ liệu Google Hình ảnh đến từ một POST duy nhất đến actor scraper.google.search với tbm: "isch". API Scraper sẽ render trang và phân tích nó trên máy chủ; bạn nhận lại một đối tượng JSON.
  • Thể loại hình ảnh là một trường đầu vào. tbm: "isch" chuyển actor tìm kiếm Google sang thể loại Hình ảnh; q chứa truy vấn của bạn. Tất cả các thông tin khác là tùy chọn.
  • Một tiêu đề xác thực ở mọi nơi. Mỗi cuộc gọi đều mang theo x-api-token: <your key>. Một khóa tài khoản sẽ bao phủ actor và mọi actor scraper.* khác.
  • JSON đã phân tích, đã dẹt ở cấp cao nhất. Actor trả về metadata, search_information, và suggested_searches trực tiếp — không cần bọc result để giải nén. Mỗi chip tinh chỉnh trong suggested_searches mang một thumbnail data:image/jpeg;base64 inline.
  • Tất cả hình ảnh hoàn chỉnh nằm ở metadata.rawUrl. Đối tượng đã phân tích nổi bật các chip tinh chỉnh và siêu dữ liệu tìm kiếm; metadata.rawUrl chỉ vào trang Hình ảnh Google đã lưu, hoàn chỉnh khi bạn cần mọi URL hình ảnh mà đối tượng đã phân tích không làm phẳng.
  • Miễn phí để bắt đầu. Tài khoản Scrapeless mới bao gồm tín dụng API Scraper miễn phí — đăng ký tại app.scrapeless.com.

Giới thiệu: đọc thể loại Hình ảnh dưới dạng JSON

Google Hình ảnh nằm trên một trong những chỉ mục hình ảnh lớn nhất trên web mở, và rất nhiều công việc phụ thuộc vào những gì nó cung cấp: nghiên cứu sản phẩm hình ảnh, theo dõi thương hiệu và logo, xây dựng tập dữ liệu hình ảnh cho đào tạo mô hình, theo dõi cách một truy vấn được hiển thị ở các khu vực khác nhau, và thu thập tham khảo thiết kế trên quy mô lớn. Truy vấn là đầu vào; một lưới hình ảnh và một hàng các chip tinh chỉnh là đầu ra.

Có được đầu ra đó theo cách lập trình là phần khó khăn. Trang Hình ảnh được render bằng JavaScript, các thumbnail được nhúng dưới dạng base64 bên trong payload của script, các chip tinh chỉnh và URL hình ảnh bị chôn vùi trong dữ liệu hydrat hóa của trang, và một yêu cầu ẩn danh nhận được một thử thách thay vì một lưới. Một scraper tự chế phải render trang, vượt qua lớp chống bot và phân tích ngược markup — ba công việc mà tất cả đều thay đổi khi Google phát hành thiết kế mới.

Hướng dẫn này sẽ đi qua actor scraper.google.search trên API Scraper của Scrapeless, hoạt động với tbm: "isch". Một yêu cầu HTTP trả về một đối tượng đã phân tích cùng với một bản sao đã lưu của trang hình ảnh được render. Không cần trình duyệt để điều khiển, không cần bộ phân tích để duy trì. Ví dụ đã làm dưới đây là bản ghi thực tế của q: "golden retriever"; một hướng dẫn API Scraper đồng hành đề cập đến gia đình AI-answer với hình dạng yêu cầu tương tự.


Tại sao sử dụng API Scraper cho Google Hình ảnh

  • Không cần trình duyệt, không cần bộ phân tích để duy trì. Actor render và phân tích trang Hình ảnh trên máy chủ; bạn nhận được các trường có cấu trúc, không phải DOM để duyệt hoặc blob base64 để giải mã bằng tay.
  • Một đầu vào chuyển thể loại. Cùng một actor tìm kiếm Google phục vụ cả kết quả web và hình ảnh — đặt tbm: "isch" và phản hồi sẽ trở lại dưới dạng thể loại Hình ảnh.
  • Egress khu dân cư và rendering được tích hợp. Geo-routing và rendering JavaScript hoạt động bên trong actor; bạn gửi { actor, input } và đọc kết quả.
  • Một hình dạng để đọc. Đối tượng Hình ảnh đã phân tích được dẹt ở cấp cao nhất, vì vậy một wrapper client viết một lần xử lý phản hồi mà không cần giải nén các phong bì lồng ghép.

Lấy khóa API của bạn trên gói miễn phí tại app.scrapeless.com. Actor tìm kiếm Google là một phần của Deep SerpApi, nằm trong danh mục giá cả.


Điều kiện tiên quyết

  • Một tài khoản Scrapeless và khóa API — đăng ký tại app.scrapeless.com.
  • curl cho thử nghiệm nhanh, hoặc Python 3.10+ cho client bên dưới.
  • Làm quen cơ bản với HTTP và JSON.

Lưu trữ khóa của bạn trong môi trường để nó không bao giờ xuất hiện trong mã:

bash Copy
export SCRAPELESS_API_KEY=your_api_token_here

Yêu cầu

Google Hình ảnh sử dụng điểm cuối site/SERP. Bạn đặt tên cho actor, cung cấp đầu vào và gửi khóa của bạn trong tiêu đề.

  • Điểm cuối: POST https://api.scrapeless.com/api/v1/scraper/request
  • Actor: scraper.google.search
  • Tiêu đề xác thực: x-api-token: $SCRAPELESS_API_KEY

Nội dung là { "actor": "<name>", "input": { … } }. Đối với thể loại Hình ảnh, đầu vào có hai trường:

json Copy
{
  "actor": "scraper.google.search",
  "input": { "q": "golden retriever", "tbm": "isch" }
}
Trường đầu vào Bắt buộc Mô tả
q chuỗi truy vấn tìm kiếm hình ảnh
tbm chiều dọc tìm kiếm — "isch" chọn Google Hình ảnh
hl không có ngôn ngữ UI, ví dụ: "en"
gl không có quốc gia / khu vực, ví dụ: "us"
google_domain không có miền Google để truy cập, ví dụ: ".google.com"

Ví dụ — curl và Python

Kiểm tra nhanh nhất là một cuộc gọi curl duy nhất:

bash Copy
curl -sS -X POST https://api.scrapeless.com/api/v1/scraper/request \
  -H "Content-Type: application/json" \
  -H "x-api-token: ${SCRAPELESS_API_KEY}" \
  -d '{
    "actor": "scraper.google.search",
    "input": { "q": "golden retriever", "tbm": "isch" }
  }'

Yêu cầu tương tự trong Python, với phản hồi được phân tích thẳng vào một dict:

python Copy
import os
import json
import requests

ENDPOINT = "https://api.scrapeless.com/api/v1/scraper/request"


def scrape_google_images(query: str) -> dict:
    resp = requests.post(
        ENDPOINT,
        headers={
            "Content-Type": "application/json",
            "x-api-token": os.environ["SCRAPELESS_API_KEY"],
        },
        json={"actor": "scraper.google.search", "input": {"q": query, "tbm": "isch"}},
        timeout=120,
    )
    resp.raise_for_status()
    return resp.json()


if __name__ == "__main__":
    data = scrape_google_images("golden retriever")
    # google.search phẳng kết quả phân tích ở cấp độ cao nhất,
    # vì vậy data.get("result", data) quay lại với toàn bộ phản hồi.
    print(json.dumps(data.get("result", data), indent=2, ensure_ascii=False))

Vì actor tìm kiếm Google làm phẳng đầu ra đã phân tích của nó ở cấp độ cao nhất, nên không có khóa result để truy cập — data.get("result", data) chỉ đơn giản trả về toàn bộ phản hồi, và bạn đọc search_informationsuggested_searches trực tiếp từ đó.

Lấy khóa API của bạn trên gói miễn phí: app.scrapeless.com


Những gì bạn nhận được

Đối với chiều dọc Hình ảnh, actor nâng cao một metadata envelope của Scrapeless, search_information mà Google phản hồi, và hàng châm biếm tinh chỉnh hình ảnh (suggested_searches) mà Google hiển thị trên lưới. Mỗi chip mang theo hình thu nhỏ inline của riêng nó. Đây là bản chụp thực của q: "golden retriever", tbm: "isch":

json Copy
// Bản chụp thực cho q:"golden retriever", tbm:"isch".
// hình thu nhỏ base64 đã cắt; suggested_searches rút gọn xuống 2 trong số 5 chip — mẫu minh họa.
{
  "metadata": {
    "engine": "google.search",
    "rawUrl": "https://api.scrapeless.com/storage/scrapeless.scraper.google.search/…_1781025000.html"
  },
  "pagination": {},
  "search_information": {
    "organic_results_state": "Kết quả cho chính xác chính tả",
    "query_displayed": "golden retriever",
    "total_results": 0,
    "time_taken_displayed": ""
  },
  "suggested_searches": [
    {
      "name": "Cún con",
      "link": "https://www.google.com/search?sca_esv=…&gl=us&q=golden+retriever+puppy&uds=…&udm=2&sa=X&…",
      "uds": "",
      "q": "Cún con golden retriever",
      "thumbnail": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/…"
    },
    {
      "name": "Dễ thương",
      "link": "https://www.google.com/search?sca_esv=…&gl=us&q=cute+golden+retriever&uds=…&udm=2&sa=X&…",
      "uds": "",
      "q": "Dễ thương golden retriever",
      "thumbnail": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/…"
    }
  ]
}

Từng trường một:

trường loại nó giữ gìn
metadata.engine chuỗi động cơ actor đã phục vụ yêu cầu — "google.search"
metadata.rawUrl chuỗi (URL) bản sao đã lưu của trang Google Hình ảnh được hiển thị đầy đủ; lấy nó để có lưới hình ảnh hoàn chỉnh
pagination đối tượng con trỏ phân trang; một đối tượng trống trong bản chụp này
search_information.query_displayed chuỗi truy vấn mà Google phản hồi lại ("golden retriever")
search_information.organic_results_state chuỗi trạng thái chính tả / kết quả ("Kết quả cho chính xác chính tả")
search_information.total_results số số lượng kết quả mà Google báo cáo — 0 cho chiều dọc hình ảnh ở đây
search_information.time_taken_displayed chuỗi chuỗi thời gian của Google; trống trong bản chụp này
suggested_searches[] mảng các chip tinh chỉnh hình ảnh được hiển thị trên lưới
suggested_searches[].name chuỗi nhãn chip ("Cún con", "Dễ thương", "Labrador", …)
suggested_searches[].q chuỗi truy vấn tinh chỉnh mà chip chạy ("Cún con golden retriever")
suggested_searches[].link chuỗi (URL) URL tìm kiếm Google Hình ảnh cho tinh chỉnh đó (udm=2 là tham số chiều dọc hình ảnh của Google)
suggested_searches[].uds chuỗi mã token chip uds của Google; trống trong bản chụp này
suggested_searches[].thumbnail chuỗi một bản xem trước inline data:image/jpeg;base64 cho chip

Một vài quan sát chân thực về hình dạng:

  • Đối tượng đã phân tích hiển thị các chip tinh chỉnh, không phải mảng images_results phẳng. Đối với chiều dọc isch, diễn viên trả về suggested_searches cộng với trang đã được hiển thị tại metadata.rawUrl. Khi bạn cần mọi URL hình ảnh trên lưới, hãy lấy metadata.rawUrl — trang đã lưu đó chứa tập hợp đầy đủ mà đối tượng đã phân tích không làm phẳng.
  • Hình thu nhỏ là inline base64. thumbnail của mỗi chip là một giá trị hoàn chỉnh data:image/jpeg;base64, có thể sử dụng mà không cần yêu cầu thứ hai; bản thử nghiệm đã cắt giảm chúng để dễ đọc hơn.
  • search_information phản ánh những gì Google hiển thị. total_resultstime_taken_displayed có thể trở về 0 và trống trên chiều dọc hình ảnh, nơi Google không hiển thị dòng "Về N kết quả" mà nó hiển thị cho tìm kiếm web.
  • Xem các trường theo chip như có thể null. uds có mặt trên mỗi chip nhưng trống trong bản captures này, và số lượng chip thay đổi theo truy vấn — đọc những gì có sẵn thay vì giả định một chiều dài cố định.

Kết luận

Đọc Google Images là một quyết định và một yêu cầu: chỉ định diễn viên scraper.google.search vào chiều dọc Hình ảnh với tbm: "isch", gửi { actor, input } với x-api-token của bạn, và đọc các trường đã phân tích trở lại. Phản hồi được làm phẳng ở cấp độ cao nhất — metadata, search_information, và các chip tinh chỉnh suggested_searches với hình thu nhỏ inline của chúng — và metadata.rawUrl giữ trang đã được hiển thị hoàn toàn cho lưới đầy đủ. Viết bao bọc khách hàng một lần, chỉ định nó vào truy vấn bạn cần, và cùng một hình dạng bao phủ các diễn viên trả lời AI khi đường ống phát triển.

Sẵn sàng xây dựng đường ống dữ liệu hình ảnh của bạn dựa trên AI?

Tham gia cộng đồng của chúng tôi để nhận một gói miễn phí và kết nối với các nhà phát triển đang xây dựng các đường ống Google Images: Discord · Telegram.

Đăng ký tại app.scrapeless.com để nhận tín dụng API Scraper miễn phí, và chỉ định diễn viên scraper.google.search vào các truy vấn, ngôn ngữ và vùng mà đường ống hình ảnh của bạn cần.


Câu hỏi thường gặp

H: Việc lấy thông tin từ Google Images có hợp pháp không?

Diễn viên thu thập dữ liệu công khai. Quy định khác nhau theo khu vực pháp lý và theo các điều khoản dịch vụ của Google, vì vậy hãy xem xét các Điều khoản dịch vụ liên quan và tham khảo ý kiến luật sư cho trường hợp sử dụng của bạn trước khi chạy ở quy mô lớn. Không bao giờ thu thập dữ liệu cá nhân được bảo vệ theo GDPR hoặc CCPA, và tôn trọng các quyền gắn liền với từng hình ảnh.

H: Làm thế nào để tôi xác thực?

Mỗi yêu cầu đều mang theo tiêu đề x-api-token: <your key>. Một khóa tài khoản hoạt động cho scraper.google.search và tất cả các diễn viên khác. Tạo một khóa trên gói miễn phí tại app.scrapeless.com.

H: Làm thế nào để tôi chuyển từ kết quả web sang hình ảnh?

Đặt tbm: "isch" trong input. Diễn viên scraper.google.search phục vụ kết quả tìm kiếm web theo mặc định; tbm: "isch" chọn chiều dọc Hình ảnh và thay đổi hình dạng đã phân tích thành các chip tinh chỉnh hình ảnh cùng với trang hình ảnh đã được hiển thị.

H: URL hình ảnh thực tế ở đâu?

Đối tượng đã phân tích hiển thị các chip tinh chỉnh (suggested_searches) và thông tin tìm kiếm. Toàn bộ lưới các URL hình ảnh nằm trong trang được lưu tại metadata.rawUrl — lấy URL đó khi bạn cần mọi hình ảnh trên trang kết quả, không chỉ hàng tinh chỉnh.

H: Tôi có thể thu hẹp kết quả theo ngôn ngữ hoặc quốc gia không?

Có. Các đầu vào tùy chọn hl (ngôn ngữ giao diện), gl (quốc gia / địa phương), và google_domain giới hạn yêu cầu — ví dụ { "q": "golden retriever", "tbm": "isch", "hl": "en", "gl": "us" }.

H: Tôi có cần một proxy không?

Không. Phân phối cư trú và định tuyến địa lý được tích hợp vào diễn viên — bạn gửi đầu vào, và diễn viên xử lý mạng và lớp hiển thị.

H: Tôi có thể chạy điều này mà không cần SDK hoặc tác nhân AI không?

Có. Đó là HTTP đơn giản — curl, Python requests, Node fetch, hoặc bất kỳ ngôn ngữ nào có khách hàng HTTP hoạt động trực tiếp với POST /api/v1/scraper/request. Không cần SDK.

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