api - Web Scraping 需要 t2.gstatic URL 参数

我正在检查是否可以使用 gstatic 从网站上抓取图标。下面将获取网站 Favicon:

https://t2.gstatic.com/faviconV2?client=SOCIAL&type=FAVICON&fallback_opts=TYPE,SIZE,URL&url=https://yahoo.com&size=64

我知道 URL 参数可能不适合一般用途,而只是检查是否有人知道这可能记录在哪里?

更新:我刚刚开始在 Google App Script 上构建一个应用程序。我需要列出网站名称及其网站图标和元数据,如网站描述等。目前唯一的方法是阅读网页并使用 beautifulSoup 解析页面,然后找到网站图标。我遇到了上面的链接,它将直接给我网站图标!但我想更好地理解它并尝试找到有关 gstatic 的 URL 参数的更多信息。我也对从 Google App Script 抓取网站的替代方法持开放态度......

谢谢

回答1

我相信你的目标如下。

  • 您想从网站上检索网站图标。
  • 您想使用以下示例 URL。
    • https://t2.gstatic.com/faviconV2?client=SOCIAL&type=FAVICON&fallback_opts=TYPE,SIZE,URL&url=https://yahoo.com&size=64
  • I need to list website names along with their favicons and metadata like site description, etc. 中,您想使用 Google Apps Script 检索网站的图标、标题和描述。

示例脚本 1:

当使用 https://t2.gstatic.com/faviconV2?client=SOCIAL&type=FAVICON&fallback_opts=TYPE,SIZE,URL&url=https://yahoo.com&size=64 的 URL 时,下面的示例脚本怎么样?请将以下脚本复制并粘贴到 Google Apps Script 的脚本编辑器中。并且,在脚本编辑器中运行 samoke1

function sample1() {
  const uri = 'https://t2.gstatic.com/faviconV2?client=SOCIAL&type=FAVICON&fallback_opts=TYPE,SIZE,URL&url=https://yahoo.com&size=64';
  const blob = UrlFetchApp.fetch(encodeURI(uri)).getBlob();
  DriveApp.createFile(blob);
}
  • 运行此脚本时,将检索网站图标并将其作为文件保存到 Google Drive 的根文件夹中。
  • 当我看到 URL 时,似乎将 favicon 检索为图像数据。

示例脚本 2:

当检索网站的图标、标题和描述时,下面的示例脚本怎么样?

function sample2() {
  const uri = 'https://yahoo.com'; // Please set the URL.

  const obj = { title: "", description: "", faviconUrl: "" };
  const res = UrlFetchApp.fetch(encodeURI(uri));
  const html = res.getContentText();
  const title = html.match(/<title>(.+?)<\/title>/i);
  if (title || title.length > 1) {
    obj.title = title[1];
  }
  const description = html.match(/<meta.+name\="description".+>/i);
  if (description) {
    const d = description[0].match(/content\="(.+)"/i);
    if (d && d.length > 1) {
      obj.description = d[1];
    }
  }
  const faviconUrl = html.match(/rel="icon".+?href\="(.+?)"/i);
  if (faviconUrl && faviconUrl.length > 1) {
    obj.faviconUrl = faviconUrl[1];
  }
  console.log(obj);
}
  • 运行此脚本时,您可以在日志中看到以下value。

    {
        "title":"Yahoo | Mail, Weather, Search, Politics, News, Finance, Sports & Videos",
        "description":"Latest news coverage, email, free stock quotes, live scores and video are just the beginning. Discover more every day at Yahoo!",
        "faviconUrl":"https://s.yimg.com/cv/apiv2/default/icons/favicon_y19_32x32_custom.svg"
      }

参考:

相似文章

随机推荐

最新文章