在 IE、Edge、Chrome 或 Firefox 上永久阻止网络调用/url
Permanently blocking a network call / url on IE, Edge, Chrome or Firefox
我有一个网页需要整天处理,它是一个门户。我每天至少需要重新加载它大约 500 次。
我发现它非常慢,而且我发现它向我无法在此处列出的特定网站发出网络调用(只是为了加载个人资料图片),并且该网络调用超时。
现在因为它超时了,我无论如何都没有得到个人资料照片,但每次重新加载最终浪费了大约 30 秒。
我可以在 Chrome 开发工具的“网络”选项卡中阻止域,但我正在寻找更永久的修复方法。我不想让 Dev Tools 一直打开,因为它占用了宝贵的屏幕空间。我还没有找到永久阻止该特定网络呼叫的方法,这将每天节省我的时间。
现在我想到了 3 件事:
- 阻止网页上的所有图像资源
- 可能使用 Selenium 初始化 chrome 实例,并传入阻止该网络调用的选项。
- 阻止该特定网站?到目前为止它对我没有用,我做错了吗?
我很乐意在任何浏览器(Internet Explorer、Edge、Chrome、Firefox)上进行修复。
这个有什么线索吗?我不可能是唯一一个面对这个问题的人,但我还没有找到不使用管理员访问权限的解决方案,而我没有。
解决方法 1:从 Selenium 调用 chrome 实例,并禁用所有图像。可行,但不是最佳方法。
from selenium import webdriver
chrome_options = webdriver.ChromeOptions()
prefs = {"profile.managed_default_content_settings.images": 2}
chrome_options.add_experimental_option("prefs", prefs)
driver = webdriver.Chrome(chrome_options=chrome_options)
解决方法 2:在执行 Network.setBlockedURLs
时从 Selenium 启动 Chrome Window。它只适用于 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/*"]})
driver.get("www.mywebsite.com")
我有一个网页需要整天处理,它是一个门户。我每天至少需要重新加载它大约 500 次。
我发现它非常慢,而且我发现它向我无法在此处列出的特定网站发出网络调用(只是为了加载个人资料图片),并且该网络调用超时。
现在因为它超时了,我无论如何都没有得到个人资料照片,但每次重新加载最终浪费了大约 30 秒。
我可以在 Chrome 开发工具的“网络”选项卡中阻止域,但我正在寻找更永久的修复方法。我不想让 Dev Tools 一直打开,因为它占用了宝贵的屏幕空间。我还没有找到永久阻止该特定网络呼叫的方法,这将每天节省我的时间。
现在我想到了 3 件事:
- 阻止网页上的所有图像资源
- 可能使用 Selenium 初始化 chrome 实例,并传入阻止该网络调用的选项。
- 阻止该特定网站?到目前为止它对我没有用,我做错了吗?
我很乐意在任何浏览器(Internet Explorer、Edge、Chrome、Firefox)上进行修复。 这个有什么线索吗?我不可能是唯一一个面对这个问题的人,但我还没有找到不使用管理员访问权限的解决方案,而我没有。
解决方法 1:从 Selenium 调用 chrome 实例,并禁用所有图像。可行,但不是最佳方法。
from selenium import webdriver
chrome_options = webdriver.ChromeOptions()
prefs = {"profile.managed_default_content_settings.images": 2}
chrome_options.add_experimental_option("prefs", prefs)
driver = webdriver.Chrome(chrome_options=chrome_options)
解决方法 2:在执行 Network.setBlockedURLs
时从 Selenium 启动 Chrome Window。它只适用于 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/*"]})
driver.get("www.mywebsite.com")