首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python请求或beautifulsoup4延迟

Python请求或beautifulsoup4延迟
EN

Stack Overflow用户
提问于 2021-10-11 07:31:52
回答 1查看 338关注 0票数 0

我编写了一段代码来抓取binance公告站点(https://www.binance.com/en/support/announcement/c-48?navId=48),获取最后一个标记并对其执行一些操作。问题是,当Binance发布一个带有新标签的新公告时,我的代码会在3-5分钟后检测到它。所以它有3-5分钟的延迟。此外,我在我的个人网站上尝试了同样的代码,它在没有任何延迟的情况下工作得很好。为什么会出现这种情况?是什么原因导致了这个问题?

代码语言:javascript
复制
session = requests_cache.CachedSession('demo_cache')

####### first check of <a> ########
def getFirstLink():
    pageForFirstCheck = session.get(siteUrl)
    soupForFirstCheck = BeautifulSoup(pageForFirstCheck.content, "html.parser")
    resultForFirstCheck = soupForFirstCheck.find('div', class_='css-6f91y1')
    firstDiv = resultForFirstCheck.find('div', class_='css-vurnku')
    firstLink = firstDiv.find('a')
    prevLink =  firstLink.get_text()  # <a> cel mai de sus
    return prevLink

另外,我将这个函数包装在一个while True循环中:

代码语言:javascript
复制
while True:
    time.sleep(random.randint(1, 5))
    try:
        stringThatCameFromLink = getFirstLink()
        # and it does something with that link

提前谢谢你!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-10-22 08:12:23

我认为问题在于cloudflare服务器正在缓存文档。或者这是二进制程序员故意做的,这样一小撮人就可以比其他人更快地对新闻做出反应。如果你想获得新的数据,这是一个很大的问题。如果查看HTTP标头,您会注意到"Date:“标头被服务器缓存,这意味着文档的整个内容都被缓存。如果我添加或删除gzip头文件,我设法得到两个不同的"Date:“。“接受-编码: gzip,deflate”。我使用的是页面https://www.binance.com/bapi/composite/v1/public/cms/article/catalog/list/query?catalogId=48&pageNo=1&pageSize=15如果您更改了"pageSize“参数,您可以从服务器获得最新的缓存响应。但这仍然不能解决5分钟的延迟问题。我还能看到以前的那一页。你的链接和我的一样是https://www.binance.com/en/support/announcement/c-48?navId=48的,https://www.binance.com/bapi/composite/v1/public/cms/article/catalog/list/query?catalogId=48&pageNo=1&pageSize=15也被缓存了5秒。我猜也会有5分钟的延迟。我还没有找到解决这个问题的办法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69522516

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档