我有一個網頁,我必須整天作業,它是一個門戶網站。我每天需要重新加載大約 500 次,至少。
我發現它慢得令人痛苦,而且我發現它對一個我不能在此列出的特定網站進行了一次網路呼叫(只是為了加載個人資料圖片),而該網路呼叫超時了。 現在,由于它超時,我無論如何也得不到一張個人資料圖片,但它最終在每次重新加載時浪費了大約30秒。
我可以在 Chrome 開發工具的 "網路 "選項卡中阻止該域名,但我正在尋找一個更持久的解決方案。我不想讓開發工具一直處于打開狀態,因為它占用了寶貴的螢屏空間。我還沒有找到一種方法來永久地阻止那個特定的網路呼叫,這將為我每天節省幾個小時。
我現在想到了3件事:
- 阻止網頁上的所有影像資產 。
- 使用Selenium也許初始化chrome實體,并傳入選項以阻止該網路呼叫。
- 阻止那個特定的網站?到目前為止,它還沒有對我起作用,我是不是做錯了?
我對任何瀏覽器(Internet Explorer、Edge、Chrome、Firefox)的修復都很滿意。 在這個問題上有什么線索嗎?我不可能是唯一一個面臨這種情況的人,但我還沒有找到一個不使用管理員權限的解決方案,而我沒有這個權限。
uj5u.com熱心網友回復:
解決方法1。從Selenium呼叫chrome實體,并禁用所有影像。可以使用,但不是最好的方法。
from selenium import webdriver
chrome_options = webdriver.ChromeOptions()
prefs = {"profile.managed_default_content_settings.images"/span>: 2}。
chrome_options.add_experimental_option("prefs"/span>, prefs)
driver = webdriver.Chrome(chrome_options=chrome_options)
uj5u.com熱心網友回復:
解決方法2。在執行Network.setBlockedURLs時從Selenium啟動Chrome視窗。它只在 Selenium 4 及以上版本中起作用,但目前在 Selenium 4.0.0.b3上不起作用。
https://chromedevtools.github.io/devtools-protocol/tot/Network/#method-setBlockedURLs
from selenium import webdriver
driver = webdriver.Chrome()
driver.execute_cdp_cmd('Network.setBlockedURLs', {"urls": ["https://www.somelink.com/*"/span>]})
driver.get("www.mywebsite.com")
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/320225.html
標籤:
上一篇:當IE11被禁用/卸載時,WebBrowser控制元件不能在本地瀏覽器視窗中打開URLs
下一篇:BeautifulSoup:IndexError:listindexoutofrangeforMultipleLinkstoScrape.
