我使用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次下载/请求之后,脚本将以错误终止
错误。[错误编号24]打开的文件太多。在
我已经确认正在写入的文件已关闭。selenium也是如此,在每个文本文件被下载后,chromedriver关闭,循环移动到下一个URL。有其他人遇到过这种情况吗?如果有,你做了什么来修复它?在
谢谢你的建议。在
我刚刚意识到浏览器.close()关闭窗口,但不退出chromedriver实例。由于chromedriver的初始化是在提取数据文件的循环中进行的,所以脚本不断地打开chromedriver的新实例,最终使我的内存过载超过200个实例。在
解决这个问题的简单方法是使用webdriver.退出(),这将完全退出webdriver的实例。在
更好的是,与其在每次循环迭代开始时创建新实例,不如在循环结束时使用网络驱动程序.get(URL),它将把当前实例重定向到目标URL。在
相关问题 更多 >
编程相关推荐