簡體   English   中英

Selenium 循環腳本使用過多內存,最終導致 Chrome 崩潰

[英]Selenium loop script using too much ram, eventually crashing Chrome

我有一個非常大的 URL 列表,我正在嘗試抓取,我正在使用 for 循環遍歷每個 URL。

最終,在列表的 x 元素中,我的 Chrome 窗口將崩潰('Aw Snap!' 錯誤出現在瀏覽器窗口中)。 我不知道解決這個問題。

我不能分享我的代碼,但是是這樣的:

very_large_url_list = [url1, url2, url3, url4...]

for x in very_large_url_list:
    driver.get(x)
    doStuff()

如果我嘗試在每次迭代時關閉驅動程序,如下所示:

for x in very_large_url_list:
    driver.get(x)
    doStuff()
    driver.close()

我會收到一條錯誤消息,指出會話 ID 無效。 如果我不關閉它,那么最終會發生內存泄漏,我將無法完成對列表的迭代。 我能做些什么來解決這個問題?

如果我不夠清楚,請告訴我,以便我可以編輯問題!

如果您嘗試在每次迭代時關閉驅動程序,您不應該這樣做嗎?

for x in very_large_url_list:
    driver = webdriver.Chrome()
    driver.get(x)
    doStuff()
    driver.close()

您知道我們也可以不使用任何瀏覽器打開 URL 嗎? 這也是經常被問到的面試問題。 讓我們學習它。

讓我們先執行一些步驟:

  1. 打開瀏覽器。
  2. 按 F12。
  3. 切換到控制台選項卡。
  4. 輸入window.location='https://www.redbus.in'並按 Enter 鍵。

您會注意到 redbus 網站已加載。

這是在不使用任何方法(如get()navigate()的情況下加載 URL 的方式。 上面的語句被稱為 JavaScript 命令。 我們稍后會看到 JavaScript 的概念。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM