【问题标题】:How to force update Facebook's scraper cache?如何强制更新 Facebook 的爬虫缓存?
【发布时间】:2013-07-16 20:38:53
【问题描述】:

在将我的项目迁移到新服务器后,我在使用 facebook 的爬虫时遇到了一些问题, 在将我的 DNS 服务器更改为指向新服务器的 IP 后,Facebook 的爬虫仍然会命中旧 IP,这让我想知道是否有办法强制爬虫更新其 DNS 缓存?

在旧盒子上,我为 Cache-Control 标头 Cache-Control: max-age=300 提供了一个较短的 max-age,这种情况自迁移以来一直在持续。一周前

我似乎在 SO 甚至 Facebook 的文档中都找不到任何相关的解决方案..

到目前为止,我 come across 唯一相关的提示是针对 URL 手动使用 Facebook 的 Linter,这会强制更新缓存,但由于图像共享超过 1000 万,这显然不适合我。

我所说的所有共享项目都是 JPEG 的绝对 URL。

有什么建议吗?

【问题讨论】:

    标签: php facebook apache facebook-opengraph cache-control


    【解决方案1】:

    您可以使用端点强制 Facebook 重新抓取您的网址

    POST /?id={object-url}&scrape=true
    

    希望这能解决您的问题。

    【讨论】:

    • 我明白你的意思,但这对我的情况没有帮助,因为这些对象已经发布在个人资料上并在 Facebook 上圈了,还是我误解了你的提示?
    • 如果您能够通过使用 Facebook Linter 为您的任何一个 url 解决问题,那么这应该可以解决您的问题。这只是该 Linter 的 API 端点,因此您可以自动化 linting 过程。
    • 上述解决方案不打算转发对象。它的作用是让我们告诉 facebook 抓取我们的对象(就像你在 linter 中做的一样)。由于这只是一个 API 端点,因此您可以根据需要对其进行多次调用。例如。假设您的对象是一个网页,其 url 是 example.com/webpage 现在您可以向上述 endpoint 发出 POST 请求,例如:https://graph.facebook.com/?id=http://www.example.com/webpage&scrape=true 这将导致 facebook 强制抓取该对象履带式。现在您可以运行一个循环并根据需要更新任意数量的 url。
    • 这只是救了我。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2018-08-12
    • 2015-03-04
    • 2014-07-11
    • 2016-10-08
    • 2023-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多