【问题标题】:How major websites capture thumbnails from a link?主要网站如何从链接中捕获缩略图?
【发布时间】:2023-03-16 13:41:02
【问题描述】:

在 Digg 和 Facebook 等主要网站上共享链接时;它将通过捕获页面的主要图像来创建缩略图。他们如何从网页中捕获图像?它是否包括加载整个页面(例如通过 cURL)并解析它(例如使用 preg_match)?对我来说,这种方法既慢又不可靠。他们有更实用的方法吗?

附:我认为应该有一种实用的方法可以通过跳过某些部分(例如 CSS 和 JS)来快速爬取页面以达到 src 属性。有什么想法吗?

【问题讨论】:

  • 是的,他们会使用 cURL 或类似的东西来加载它,但他们会使用 HTML 解析器来查找图像(并获取 src 属性),不是正则表达式。
  • 你能想出一种从页面中查找图像而不是解析出来的“更实用”的方法吗?
  • 我正在考虑一种更实用的方法来抓取页面,而不是使用 cURL 之类的内容加载整个页面。为此,它们不需要加载 CSS 和 Javascript 代码。
  • CURL 不会加载 CSS 和 javascript,除非您将其指向这些 URL。如果它是内联 CSS 和 javascript,那么无论如何你都必须阅读它。它不会被 CURL 解释。

标签: php html regex curl preg-match


【解决方案1】:

JohnD 的回答表明 Reddit 使用 embed.ly 作为其 Python 解决方案的一部分。真正 embed.ly 完成了查找图像的困难部分,并且它们在 10,000 个请求/月以下是免费的。

【讨论】:

    【解决方案2】:

    他们通常会在页面上查找图像,然后在他们的服务器上将其缩小。 Reddit 的scraper code 展示了他们所做的很多事情。 Scraper class 应该会给你一些关于如何解决这个问题的好主意。

    【讨论】:

      【解决方案3】:

      他们通常使用webkit2png 之类的工具。

      【讨论】:

      • 此工具可创建整个页面的屏幕截图。这与从页面中的图像(不是页面本身)创建的缩略图完全不同。
      【解决方案4】:

      有些人用

       <link rel="image_src" href="yourimage.jpg" /> 
      

      包含在页面的头部。见http://www.labnol.org/internet/design/set-thumbnail-images-for-web-pages/6482/

      Facebook 使用

      <meta property="og:image" content="thumbnail_image" />
      

      见:http://developers.facebook.com/docs/share/#basic-tags

      【讨论】:

      • 这些是给开发者的建议。如果您在 digg 中分享几乎所有链接;它可以捕捉缩略图(不仅是标准的)。
      猜你喜欢
      • 2018-05-02
      • 1970-01-01
      • 2020-08-28
      • 2019-07-20
      • 1970-01-01
      • 1970-01-01
      • 2014-06-18
      • 2018-04-08
      • 2022-06-13
      相关资源
      最近更新 更多