【问题标题】:How to By pass WP super cache using python?如何使用 python 绕过 WP 超级缓存?
【发布时间】:2010-09-07 14:13:09
【问题描述】:

我正在尝试从频繁更新的博客中收集数据,因此我只需使用包含 urllib2.urlopen("http:\example.com") 的 while 循环每 5 分钟刷新一次页面以收集我的数据通缉。

但我注意到这样做并没有获得最新的内容,这与我通过 Firefox 等浏览器看到的不同,并且在检查了 Firefox 的源代码和我从 python 获得的同一页面之后,我发现它是 WP Super Cache 阻止我获得最新结果。

即使我在我的 python 代码中欺骗了标题,我仍然会得到相同的缓存页面。所以我想知道有没有办法绕过 WP 超级缓存?以及为什么 Firefox 中根本没有这样的超级缓存?

【问题讨论】:

    标签: php python wordpress urllib2 urlopen


    【解决方案1】:

    您是否尝试过使用一些无害的数据更改 URL?像这样的:

    import time
    urllib2.urlopen("http:\example.com?time=%s" % int(time.time()))
    

    它实际上会调用http:\example.com?time=1283872559。如果有查询字符串或者不是预期的内容,大多数缓存系统都会绕过缓存。

    【讨论】:

    • 确实;如果您检查the WP Super Cache homepage,其中一项功能是“不要超级缓存任何带有 GET 参数的请求”。所以你甚至可能不需要改变你的参数。 (WP Super Cache 需要自定义永久链接结构;它不适用于使用 GET 参数的默认永久链接设置。)
    • 如果我在 Firefox 中浏览“example.com?time=1283872559”,一切都很好,它只是显示为“example.com”。但是我使用python会收到400 bad request错误,为什么会这样?
    • @Matt Gibson:让我很困惑的是,每次我在 Firefox 中刷新网站时,只要按 F5,我总是会得到实时生成的页面,这意味着 WP Super Cache 不起作用?但是使用 urllib2.urlopen 我总是得到缓存页面...
    • 我注意到虽然仍然出现这样的行:,每次我请求我将获得一个全新的时间,这意味着它实际上只是生成页面。这个方法有效!非常感谢 Oli 和 Matt Gibson 的详细解释。
    猜你喜欢
    • 1970-01-01
    • 2021-06-26
    • 1970-01-01
    • 2010-09-26
    • 1970-01-01
    • 2021-01-29
    • 2021-10-23
    • 2018-09-19
    • 1970-01-01
    相关资源
    最近更新 更多