You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取JSON格式Google搜索结果及JS应用图片推荐方案?

Hey there! Let's tackle your questions one by one, since they're related but have different constraints:

1. 获取JSON格式的Google搜索结果的可行方式

First off, you can't legally scrape Google's regular search results for JSON output—this violates Google's Terms of Service, and their anti-scraping measures will block you quickly anyway.

The only legitimate way to get Google search results in JSON is via the Google Custom Search API. Here's what you need to know:

  • You'll need to create a Custom Search Engine (CSE) in the Google Cloud Console, get an API key, and link it to your CSE.
  • The API returns JSON responses with search results, including titles, links, snippets, etc.
  • There are free usage limits (100 queries per day), beyond which you'll pay per query.
  • Note that this is for custom search engines you define (you can set it to search the entire web, but it's still a CSE instance).
2. JS组件中调用Google Photos获取图片推荐的可行性与替代方案

Short answer: No, not without user authorization, and even then it's limited to the user's own library.

Google Photos doesn't expose a public API that lets third-party apps search arbitrary public photos. All access to Google Photos requires the user to grant your app permission via OAuth 2.0, and even then you can only access the photos and albums that the authorized user owns.

If your use case is about letting users search their own Google Photos library, here's how you could implement it with the Google Photos API:

  • Set up OAuth 2.0 authentication for your JS app (using Google's OAuth client library).
  • Once the user is authenticated, call the mediaItems.search endpoint with your keyword. The response will be a JSON object containing media items, each with a baseUrl you can use to display the image.

Here's a quick snippet of how that might look in JS (using the Google API client):

// Initialize the Google API client
gapi.load('client', async () => {
  await gapi.client.init({
    apiKey: 'YOUR_API_KEY',
    clientId: 'YOUR_CLIENT_ID',
    discoveryDocs: ['https://photoslibrary.googleapis.com/$discovery/rest?version=v1'],
    scope: 'https://www.googleapis.com/auth/photoslibrary.readonly'
  });

  // Search for photos with a keyword
  const response = await gapi.client.photoslibrary.mediaItems.search({
    q: 'YOUR_KEYWORD',
    pageSize: 10
  });

  // Extract image URLs from the response
  const imageUrls = response.result.mediaItems?.map(item => `${item.baseUrl}=w400-h300`) || [];
  console.log(imageUrls);
});

Alternative solutions if you need public image recommendations

If your goal is to suggest public images based on a text input (not tied to a user's personal Photos library), these are better options:

  • Unsplash/Pexels/Pixabay APIs: These platforms offer free, rate-limited APIs to search for high-quality, royalty-free images. They return JSON responses with direct image links, perfect for JS apps. For example, a fetch call to Unsplash's search endpoint:
    const keyword = document.getElementById('text-input').value;
    fetch(`https://api.unsplash.com/search/photos?query=${keyword}&client_id=YOUR_UNSPLASH_ACCESS_KEY`)
      .then(res => res.json())
      .then(data => {
        const imageUrls = data.results.map(photo => photo.urls.small);
        // Use imageUrls to render your recommendations
      });
    
  • Self-hosted image library: If you need a curated set of images, build your own backend API that indexes your images and provides a search endpoint. This gives you full control over the content and no external rate limits, but requires ongoing maintenance.

内容的提问来源于stack exchange,提问作者TheNormalPerson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.06 15:57:47