【问题标题】:How to avoid 'HTTP error code:429' while web scraping?网页抓取时如何避免“HTTP错误代码:429”?
【发布时间】:2019-05-23 19:57:00
【问题描述】:

我正在尝试从 Google 上抓取信息,但他们不喜欢它。该向量包含 2487 个 Google 站点,我想从中获取第一个结果的文本。

我试图创建一个循环来减慢这个过程,但我很不擅长。

b 是包含所有网站的值。首先,我试过了:

ContentScraper(b, CssPatterns = ".st") -> b

然后,我尝试循环并减慢它的速度,但我不知道该怎么做。

b[i] <- ContentScraper(i, CssPatterns = ".st")}

从 55 日起,我得到的只是错误。关于如何避免它的任何想法?谢谢。

【问题讨论】:

  • 您可以将其包装在 tryCatch 中并通过该错误
  • 429 是“请求过多”,可能是由于速率限制。使用人工Sys.sleep(...) 或其他确保您超出配额的方法来降低您的请求速度。如果您不知道您的限制是多少,那么我建议您查看您正在抓取的网站的用户许可,并确定(a)如何增加这些限制,或者(b)限制是什么,以便你没有违反他们。
  • 那么,我应该如何在我创建的这个循环中使用Sys.sleep(...)tryCatch'?我不知道该放在哪里。谢谢。

标签: r rcrawler


【解决方案1】:

在循环的开头插入Sys.sleep(...)

【讨论】:

    【解决方案2】:

    一种方法是使用

    Sys.sleep(...)
    

    如果您使用puppeteerplaywright 的另一种方式,您可以使用celery beat 调整刮擦的间隔。

    这就是你要找的吗?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-05-12
      • 1970-01-01
      • 2023-01-02
      • 2020-07-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多