Google Hình ảnh với API Tìm kiếm của Google: Hướng dẫn Thực tiễn
Expert Network Defense Engineer
TL;DR:
- Sử dụng Google Search API để phát hiện tìm kiếm hình ảnh với
tbm=isch. Yêu cầu sử dụng cùng một điểm cuối xác thực vàscraper.google.searchdiễn viên như tìm kiếm web. - Kiểm tra dữ liệu hình ảnh trước khi thiết kế một công cụ xuất khẩu. Ví dụ lưu lại toàn bộ phản hồi và in cấu trúc của nó mà không giả định một sơ đồ kết quả hình ảnh chưa được xác minh.
- Khả năng tìm kiếm và tái sử dụng hình ảnh là tách biệt. Một kết quả tìm kiếm có thể giúp xác định vị trí một hình ảnh; trang nguồn và giấy phép xác định các bước tiếp theo để sử dụng nó.
Một quy trình tìm kiếm hình ảnh bắt đầu bằng việc phát hiện: tìm các hình ảnh ứng viên cho một truy vấn, kiểm tra các nguồn và quyết định những hồ sơ nào thuộc về một tập dữ liệu nghiên cứu. Một tích hợp hữu ích giữ lại dấu vết đó thay vì tải xuống tệp ngay lập tức và làm mất các trang giải thích chúng.
Hướng dẫn này sử dụng kịch bản Google Images API trong Scrapeless Google Search API. Nó bao gồm các thiết lập yêu cầu, một kịch bản capture Python hoàn chỉnh và các kiểm tra cần thiết trước khi biến dữ liệu trả về thành một danh mục hình ảnh. Nó không giả định rằng một bản đồ trường kết quả web cũng mô tả các kết quả hình ảnh.
Những Gì Bạn Có Thể Làm Với Dữ Liệu Tìm Kiếm Hình Ảnh
Tìm kiếm hình ảnh có thể hỗ trợ nghiên cứu trực quan, phát hiện nội dung và xem xét cách một chủ đề xuất hiện qua các nguồn công cộng. Ví dụ, một nhà nghiên cứu kiến trúc có thể tìm kiếm một loại tòa nhà, xác định các trang nguồn liên quan và xem xét các hình ảnh và mô tả xung quanh cùng nhau.
API cung cấp dữ liệu tìm kiếm để ứng dụng của bạn kiểm tra. Nó không tự động tạo ra một thư viện tài sản, xác minh nguồn gốc của mọi hình ảnh, hoặc cấp quyền để tái xuất bản một tệp. Những bước đó thuộc về quy trình bạn xây dựng xung quanh việc phát hiện.
Giữ nội dung truy vấn và ngữ cảnh thị trường với phản hồi. Một tập nghiên cứu trực quan cho một quốc gia hoặc ngôn ngữ có thể khác với cái khác. Nếu không có hồ sơ đầu vào, các người xem sau này không thể nói tìm kiếm nào đã sản xuất một hình ảnh ứng viên.
Chọn Google Images Với tbm=isch
Sử dụng POST https://api.scrapeless.com/api/v1/scraper/request, xác thực với x-api-token, và thiết lập actor thành scraper.google.search. Đặt tbm="isch" bên trong input bên cạnh truy vấn.
Tài liệu tham số tham chiếu này là trình chọn tìm kiếm hình ảnh. Mô hình đầu vào tương tự bao gồm gl cho quốc gia, hl cho ngôn ngữ, và các điều khiển vị trí. Chọn location hoặc uule nếu bạn cần một nguồn gốc cụ thể.
Nếu bạn sử dụng một url hoàn chỉnh thay vào đó, các tham số đầu vào khác sẽ bị bỏ qua. Điều đó bao gồm một trình chọn hình ảnh được cung cấp riêng biệt. Sử dụng một chế độ đầu vào và xác minh rằng URL tự nó thể hiện tìm kiếm hình ảnh dự kiến trước khi gửi nó.
Điều Kiện Tiên Quyết cho Kịch Bản Capture
Chuẩn bị Python, cài đặt requests với python3 -m pip install requests, và tạo một khóa API Scrapeless có sẵn thông qua SCRAPELESS_API_KEY. Kịch bản cũng cần quyền ghi tệp JSON cục bộ. Các mô-đun thư viện tiêu chuẩn xử lý tuần tự hóa, dấu thời gian và đường dẫn.
Yêu cầu xác thực cần khóa tài khoản của riêng bạn và chưa được thực hiện với tài khoản trực tiếp cho bài viết này. Hình dạng yêu cầu đã được xác minh; một sơ đồ phản hồi hình ảnh hoàn chỉnh không được khẳng định ở đây. Lưu ví dụ dưới capture_google_images.py và chạy python3 capture_google_images.py khi khóa đã được cấu hình.
Requests HTTP client gửi yêu cầu JSON. Ví dụ dừng lại sau khi capture và kiểm tra cấu trúc; nó không lấy các kết quả tác vụ đang chờ hoặc tải xuống các tệp hình ảnh.
Capture Toàn Bộ Phản Hồi Trong Python
Truy vấn modern library architecture cung cấp một ví dụ nghiên cứu trực quan cụ thể. Thay đổi nó thành một chủ đề liên quan đến dự án của bạn trong khi giữ lại các thiết lập quốc gia, ngôn ngữ, và loại kết quả trong hồ sơ đã lưu.
python
import json
import os
from datetime import datetime, timezone
from pathlib import Path
import requests
search_input = {"q": "modern library architecture", "gl": "us", "hl": "en", "tbm": "isch"}
response = requests.post(
"https://api.scrapeless.com/api/v1/scraper/request",
headers={"x-api-token": os.environ["SCRAPELESS_API_KEY"]},
json={"actor": "scraper.google.search", "input": search_input},
timeout=120,
)
response.raise_for_status()
payload = response.json()
received_at = datetime.now(timezone.utc).isoformat()
run_id = datetime.now(timezone.utc).strftime("%Y%m%dT%H%M%S%fZ")
output = Path(f"google-images-{run_id}.json")
output.write_text(json.dumps({
"input": search_input, "http_status": response.status_code,
"received_at": received_at, "response": payload,
}, ensure_ascii=False, indent=2), encoding="utf-8")
if response.status_code == 201:
print(f"Task pending; inspect taskId in {output}.")
elif response.status_code == 200 and isinstance(payload, dict):
print(f"Saved {output}. Top-level response fields:")
for key, value in payload.items():
print(key, type(value).__name__)
if isinstance(value, list):
print(" items:", len(value))
if value and isinstance(value[0], dict):
print(" first-item keys:", sorted(value[0]))
else:
raise ValueError(f"Unexpected response; inspect {output}.")
input, http_status, received_at, và response là các khóa tạo thành hồ sơ của ứng dụng này. Chúng tách biệt với sơ đồ API được trả về. Tên tệp bao gồm một định danh được tạo ra bởi khách hàng, và thời gian nhận được ghi lại trên máy cục bộ.
JSON serialization module duy trì payload lồng ghép hoàn chỉnh. Kiểm tra terminal liệt kê các loại cấp cao nhất và các khóa phần tử đầu tiên cho bất kỳ mảng cấp cao nhất nào. Đây là một công cụ kiểm tra ban đầu; các mảng lồng bên trong các đối tượng vẫn cần được xem xét trong JSON đã lưu.
Bắt Đầu Thu Thập Dữ Liệu Với Scrapeless
Tăng cường quy trình thu thập dữ liệu web và tự động hóa của bạn với Scrapeless!
Đăng ký hôm nay và nhận $5 tín dụng miễn phí — không cần thẻ tín dụng.
Nhận tín dụng miễn phí của bạn ngay bây giờ trong Scrapeless Dashboard.
Thiết lập các trường hình ảnh trước khi phẳng chúng
Bước chụp hình cố ý tránh chỉ mục một trường images_results được đoán định. Tham chiếu điểm cuối hình ảnh hiện tại bao gồm một ví dụ phản hồi với các mô-đun tìm kiếm web, vì vậy nó không thiết lập một bản đồ hoàn chỉnh cụ thể về hình ảnh. Sử dụng một phản hồi thành công từ tài khoản của bạn để xác nhận các đường dẫn mảng và các trường mục mà ứng dụng của bạn sẽ tiêu thụ.
Kiểm tra một vài mục được trả về thay vì giả định rằng mục đầu tiên đại diện cho mọi bản ghi. Lưu ý giá trị nào là tùy chọn, giá trị nào là lồng ghép, và liệu một giá trị thiếu có vắng mặt hoặc rõ ràng là null không. Giữ những sự phân biệt đó trong khi thiết kế bộ xuất dữ liệu của bạn.
Dưới đây là các cột ứng dụng được đề xuất, không phải là tên trường API đã được xác nhận:
| Cột ứng dụng | Điều gì cần thiết lập từ dữ liệu thực tế |
|---|---|
source_page_url |
Giá trị nào dẫn đến trang chứa hình ảnh |
image_url |
Giá trị nào xác định một tài nguyên hình ảnh, nếu được cung cấp |
preview_reference |
Giá trị có phải là URL xem trước, dữ liệu inline, hoặc một đại diện khác không |
result_title |
Văn bản nào mô tả kết quả ứng viên |
observed_at |
Thời gian quan sát của ứng dụng bạn |
Giữ trang nguồn và tài nguyên hình ảnh tách biệt. Chúng trả lời những câu hỏi khác nhau: một cái cung cấp ngữ cảnh để xem xét, trong khi cái kia có thể xác định byte hình ảnh. Một bản xem trước không nên được thay thế một cách lén lút cho một tài sản hình ảnh đầy đủ.
Nhận diện các tác vụ đang chờ và các hình dạng bất ngờ
Quy trình yêu cầu xác định HTTP 200 là một phản hồi dữ liệu và HTTP 201 là một tác vụ đang diễn ra với taskId. Kịch bản lưu cả hai, sau đó chỉ áp dụng kiểm tra cấu trúc cho một phản hồi đối tượng đã hoàn thành.
Một tác vụ đang chờ không nên trở thành một tập dữ liệu hình ảnh trống. Tương tự, một phản hồi chứa các mô-đun không quen thuộc nên khuyến khích kiểm tra trước khi bộ xuất sáng tạo ra các cột trống. Bảo tồn hồ sơ chẩn đoán để yêu cầu và tải trọng có thể được xem xét cùng nhau.
Nếu bạn thêm bộ lọc hoặc thay đổi nguồn tìm kiếm, hãy so sánh một bộ phản hồi nhỏ trước khi mở rộng bộ sưu tập. Loại tìm kiếm và thay đổi bộ lọc có thể ảnh hưởng đến việc các mô-đun nào xuất hiện. Do đó, các hàng đầu ra chính xác được thiết lập bởi quan sát, không phải bởi một bảng ví dụ cố định trong một hướng dẫn.
Xem lại ngữ cảnh hình ảnh và quyền tái sử dụng
Tìm kiếm hình ảnh giúp tìm vật liệu, nhưng nó không thiết lập một giấy phép cho vật liệu đó. Theo dõi trang nguồn của ứng viên và xem xét điều kiện sử dụng của nhà xuất bản trước khi sao chép, phân phối lại, hoặc chỉnh sửa một hình ảnh.
Dữ liệu giấy phép hình ảnh của Google có thể tiết lộ thông tin về giấy phép và việc thu thập trong các trải nghiệm tìm kiếm hình ảnh được hỗ trợ. Sự có mặt trong tìm kiếm chỉ không chứng minh rằng những quyền đó tồn tại. Hướng dẫn quyền sử dụng hình ảnh của nó giải thích lý do tại sao các chi tiết giấy phép nên được kiểm tra tại nguồn.
Đối với một danh mục nghiên cứu, hãy giữ một trạng thái xem xét riêng như chưa được xem xét hoặc đã xác nhận quyền, với nguồn và bằng chứng xem xét mà nhóm của bạn yêu cầu. Đó là những quyết định ứng dụng, không phải là cam kết của API. Tránh đánh dấu một hình ảnh có thể tái sử dụng chỉ vì yêu cầu đã thành công.
Mở rộng khám phá vào một danh mục có thể xem xét
Sau khi xác nhận việc lập bản đồ phản hồi, hãy tạo một xuất nhỏ và so sánh nó với tải trọng đã lưu. Xác nhận rằng mỗi trang nguồn thuộc về cùng một ứng viên với tham chiếu hình ảnh và tiêu đề. Sau đó quyết định cái gì được coi là bản sao cho trường hợp sử dụng của bạn.
Hai kết quả có thể chỉ đến cùng một hình ảnh qua các trang khác nhau, hoặc đến các phiên bản khác nhau của một hình ảnh tương tự. Việc loại trừ URL và sự tương đồng hình ảnh là các hoạt động khác nhau. Bắt đầu với một quy tắc đã được ghi chép và bảo tồn các tham chiếu gốc trước khi giới thiệu các biến đổi.
Nếu ứng dụng của bạn sau này lấy các trang nguồn hoặc tệp hình ảnh, hãy làm cho đó thành một giai đoạn riêng với kết quả riêng của nó. Sự tách biệt đó cho phép một ứng viên ở lại trong hồ sơ nghiên cứu ngay cả khi việc thu hồi hoặc xem xét quyền sau đó chưa hoàn thành.
Kết luận
Sử dụng tbm=isch để yêu cầu tìm kiếm hình ảnh, bảo tồn phản hồi, và xác nhận các trường của nó trước khi tạo một bộ xuất dữ liệu. Một quy trình làm việc nghiên cứu hình ảnh hữu ích giữ ngữ cảnh nguồn và xem xét quyền cạnh tranh cùng với khám phá, vì vậy mỗi tài sản được chọn đều có một con đường có thể truy xuất trở lại nguồn gốc của nó.
Sẵn sàng xây dựng quy trình dữ liệu tìm kiếm của bạn?
Kết nối với các nhà phát triển đang xây dựng quy trình tìm kiếm trong cộng đồng của chúng tôi: Discord · Telegram.
Sử dụng tài liệu API Tìm kiếm Google để cấu hình yêu cầu đầu tiên của bạn. Kiểm tra bảng giá Scrapeless khi lập kế hoạch khối lượng công việc của bạn, và sử dụng hướng dẫn tìm kiếm Python cho nền tảng liên quan. Các ví dụ API trong hướng dẫn này sử dụng giao diện yêu cầu hiện tại.
Câu hỏi thường gặp
Q: Liệu Google Images có phải là một tác nhân riêng trong ví dụ này không?
Không. Yêu cầu được ghi lại này sử dụng scraper.google.search với tbm=isch trong đầu vào.
Q: Mã có tải xuống tệp hình ảnh không?
Không. Nó ghi lại dữ liệu tìm kiếm và kiểm tra cấu trúc của nó. Tải xuống một hình ảnh sẽ là một bước ứng dụng riêng biệt.
Q: Có thể tái sử dụng bản đồ kết quả hữu cơ từ tìm kiếm web mà không thay đổi không?
Đừng giả định như vậy. Kiểm tra dữ liệu tìm kiếm hình ảnh thực tế và xác nhận các đường dẫn mảng và trường mục liên quan trước.
Q: Tại sao không có mẫu JSON hình ảnh cố định?
Ví dụ tham chiếu hiện tại không thiết lập một sơ đồ cụ thể cho hình ảnh đầy đủ. Hướng dẫn này cung cấp một quy trình ghi lại mà không trình bày một phản hồi bịa đặt như là đầu ra thực.
Q: Có phải hình ảnh trả về có giấy phép có thể tái sử dụng không?
Sự xuất hiện trong tìm kiếm không thiết lập quyền tái sử dụng. Xem lại trang nguồn và giấy phép hoặc sự cho phép áp dụng trước khi sử dụng hình ảnh.
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.



