解決selenium啟用多個webdriver占用內存和端口的問題


最近在改進打卡腳本,突然有一天遇到了問題。腳本調用了過多的webdriver程序,導致內存占用率很高,導致我無法正常連接服務器,也無法執行腳本。

如圖:

 

當時的解決方法:

查看進程,一個個用kill命令殺死

 

但是這樣效率很低,而且每天我起床都要執行一次操作,否則第二天就又無法打卡

網上參考的命令是加上以下語句:

driver.quit()

如果是正常執行腳本的話這句話足夠了,但是將腳本加入crontab定時自動設置多次執行,會導致出現內存占用沒關閉webdriver的問題

 

解決方法:python腳本在開頭加上自動kill進程的命令

import os
import re
import signal


# 要殺死程序名稱,最好全名
program_name = "webdriver"
# 終端執行的命令
order_str = "ps -aux|grep %s" % program_name
# 執行
strs_obj = os.popen(order_str)
t_strs = strs_obj.read()
# 通過正則獲取pid
pid_list = re.findall(r"(\d+).+webdriver --port=\d+", t_strs, re.I)
print(pid_list)
for j in pid_list:
    print(j)
    # 殺死進程
    os.kill(int(j), signal.SIGKILL)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM