gpt4 book ai didi

python - 操作系统错误: [Errno 24] Too many open files

转载 作者:行者123 更新时间:2023-11-30 23:07:34 24 4
gpt4 key购买 nike

我正在使用 python 和 selenium 抓取一个充满文本文件(如 URL)的网站,然后使用请求来获取这些 txt 文件。

我使用的代码如下:

r = requests.get(link,cookies=cookies)

# Checking for a successful connection to the server.
if r.status_code == 200:
print("Downloading data for time %d, altitude %d" %(counter1, altitude) )
data = r.text # Extracting the text from the file online
file_name = os.path.join(path,fileName)
with open(file_name, 'w') as w:
w.write(data)
w.closed


# Closing browser
browser.close()

大约有 900 个奇怪的文件需要下载,但是在每 250 个奇怪的下载/请求之后,脚本就会终止并出现错误

操作系统错误。 [Errno 24] 打开的文件太多。

我已确保正在写入的文件已关闭。 Selenium 也是如此,下载每个文本文件后,chromedriver 关闭,循环移至下一个 URL。有其他人遇到过这个问题吗?如果有,您是如何解决的?

最佳答案

感谢您的建议。

我刚刚意识到 browser.close() 关闭了窗口,但没有退出 chromedriver 的实例。由于 chromedriver 的初始化是在提取数据文件的循环内进行的,因此脚本不断打开 chromedriver 的新实例,最终导致我的内存重载超过 200 个实例。

解决这个问题的简单方法是使用 webdriver.quit(),它将完全退出 webdriver 的实例。

更好的是,不必在每次循环迭代开始时创建新实例,而是在循环结束时使用 webdriver.get(URL),它将当前实例重定向到目标 URL。

关于python - 操作系统错误: [Errno 24] Too many open files,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32174332/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com