【问题标题】:grequests - too many open files errorgrequests - 打开的文件太多错误
【发布时间】:2018-03-30 09:59:09
【问题描述】:

我正在尝试执行大约 100k GET 请求并解析每个请求的响应正文。我认为 grequests 是一个不错的方法,但我遇到了与“打开的文件太多”相关的错误。代码如下:

import grequests

with open("./100k-sites.csv", "r") as f:
    urls = ["http://" + line.rstrip() for line in f]

rs = (grequests.get(u, timeout=1) for u in urls)
responses = grequests.map(rs)

for r in responses:
    try:
        # do something with the response body
    except:
        pass

有人有这方面的经验吗?我得到的错误是:

requests.packages.urllib3.connection.HTTPConnection 对象位于 0x7f817ab36898>: 建立新连接失败 [Errno 24] Too 许多打开的文件

【问题讨论】:

  • 在 Github 上有一个相当 long discussion,尽管据我所知没有真正的修复。

标签: python grequests


【解决方案1】:

也许这只是一种解决方法(正如上面提到的discussion 中的某人所说),但恕我直言,这里值得写一下,可以通过两行来解决它:

import resource
resource.setrlimit(resource.RLIMIT_NOFILE, (110000, 110000))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-10-03
    • 2010-12-07
    • 1970-01-01
    • 2014-06-23
    • 2016-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多