Selenium / Firefox 可以连接到的白名单域
Whitelist domains Selenium / Firefox can connect to
我在 firefox 中使用 Selenium webdriver。我想知道是否有一个设置可以更改为仅从某些域请求资源。 (具体来说,我希望它只请求与网页本身位于同一域的内容)。
我目前的设置,写在Python,是:
from selenium import webdriver
firefox_profile = webdriver.FirefoxProfile()
## Here, I change various default setting in Firefox, and install a couple of monitoring extensions
driver = webdriver.Firefox(firefox_profile)
driver.get(web_address)
我想做的是,如果我指定网址 wwww.domain.com
,则只加载 domain.com
提供的内容,而不是例如通常会请求的由其他域托管的所有跟踪内容。希望可以通过更改 firefox 中的配置文件设置或通过扩展来实现。
注意 - 有一个类似的问题(没有答案) - Restricting Selenium/Webdriver/HtmlUnit to a certain domain - 但它已经四年了,我认为 Selenium 从那时起已经发展了很多。
我认为在 selenium.But 中仍然不可能,您仍然可以通过使用像 browsermob 这样的代理来实现。 Webdriver 与 browsermob 代理集成良好。
java
中的示例伪代码
//LittleProxy-powered 2.1.0 release
LegacyProxyServer server = new BrowserMobProxyServer();
server.start(0);
// Blacklist websites
server.blacklistRequests("https?://.*\.blocksite\.com/.*", 410);//these sites will be blocked
/// get the Selenium proxy object
Proxy proxy = ClientUtil.createSeleniumProxy(server);
// configure it as a desired capability
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(CapabilityType.PROXY, proxy);
// initialize the driver with the capabilities ;
Webdriver driver = new FirefoxDriver(capabilities);
希望这对您有所帮助you.Kindly 如果您需要任何进一步的帮助,请回来
多亏了 Vicky(我遵循了她使用代理设置的方法 - 虽然直接来自 Selenium),下面的代码将更改 firefox 中的代理设置,这样它就不会连接到域,除了白色-列表。
我怀疑一些设置更改是不必要的,对于大多数用途来说可以省略。 Python.
中的代码
from selenium import webdriver
firefox_profile = webdriver.FirefoxProfile()
## replace desired_domain.com below with whitelisted domain. Separate domains by comma.
firefox_profile.set_preference("network.proxy.no_proxies_on","localhost,127.0.0.1,desired_domain.com")
firefox_profile.set_preference("network.proxy.backup.ftp","0.0.0.0")
firefox_profile.set_preference("network.proxy.backup.ftp_port",1)
firefox_profile.set_preference("network.proxy.backup.socks","0.0.0.0")
firefox_profile.set_preference("network.proxy.backup.socks_port",1)
firefox_profile.set_preference("network.proxy.backup.ssl","0.0.0.0")
firefox_profile.set_preference("network.proxy.backup.ssl_port",1)
firefox_profile.set_preference("network.proxy.ftp","0.0.0.0")
firefox_profile.set_preference("network.proxy.ftp_port",1)
firefox_profile.set_preference("network.proxy.http","0.0.0.0")
firefox_profile.set_preference("network.proxy.http_port",1)
firefox_profile.set_preference("network.proxy.socks","0.0.0.0")
firefox_profile.set_preference("network.proxy.socks_port",1)
firefox_profile.set_preference("network.proxy.ssl","0.0.0.0")
firefox_profile.set_preference("network.proxy.ssl_port",1)
firefox_profile.set_preference("network.proxy.type",1)
firefox_profile.set_preference("network.proxy.share_proxy_settings",True)
driver = webdriver.Firefox(firefox_profile)
driver.get(web_address_desired)
我在 firefox 中使用 Selenium webdriver。我想知道是否有一个设置可以更改为仅从某些域请求资源。 (具体来说,我希望它只请求与网页本身位于同一域的内容)。
我目前的设置,写在Python,是:
from selenium import webdriver
firefox_profile = webdriver.FirefoxProfile()
## Here, I change various default setting in Firefox, and install a couple of monitoring extensions
driver = webdriver.Firefox(firefox_profile)
driver.get(web_address)
我想做的是,如果我指定网址 wwww.domain.com
,则只加载 domain.com
提供的内容,而不是例如通常会请求的由其他域托管的所有跟踪内容。希望可以通过更改 firefox 中的配置文件设置或通过扩展来实现。
注意 - 有一个类似的问题(没有答案) - Restricting Selenium/Webdriver/HtmlUnit to a certain domain - 但它已经四年了,我认为 Selenium 从那时起已经发展了很多。
我认为在 selenium.But 中仍然不可能,您仍然可以通过使用像 browsermob 这样的代理来实现。 Webdriver 与 browsermob 代理集成良好。
java
中的示例伪代码 //LittleProxy-powered 2.1.0 release
LegacyProxyServer server = new BrowserMobProxyServer();
server.start(0);
// Blacklist websites
server.blacklistRequests("https?://.*\.blocksite\.com/.*", 410);//these sites will be blocked
/// get the Selenium proxy object
Proxy proxy = ClientUtil.createSeleniumProxy(server);
// configure it as a desired capability
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(CapabilityType.PROXY, proxy);
// initialize the driver with the capabilities ;
Webdriver driver = new FirefoxDriver(capabilities);
希望这对您有所帮助you.Kindly 如果您需要任何进一步的帮助,请回来
多亏了 Vicky(我遵循了她使用代理设置的方法 - 虽然直接来自 Selenium),下面的代码将更改 firefox 中的代理设置,这样它就不会连接到域,除了白色-列表。
我怀疑一些设置更改是不必要的,对于大多数用途来说可以省略。 Python.
中的代码 from selenium import webdriver
firefox_profile = webdriver.FirefoxProfile()
## replace desired_domain.com below with whitelisted domain. Separate domains by comma.
firefox_profile.set_preference("network.proxy.no_proxies_on","localhost,127.0.0.1,desired_domain.com")
firefox_profile.set_preference("network.proxy.backup.ftp","0.0.0.0")
firefox_profile.set_preference("network.proxy.backup.ftp_port",1)
firefox_profile.set_preference("network.proxy.backup.socks","0.0.0.0")
firefox_profile.set_preference("network.proxy.backup.socks_port",1)
firefox_profile.set_preference("network.proxy.backup.ssl","0.0.0.0")
firefox_profile.set_preference("network.proxy.backup.ssl_port",1)
firefox_profile.set_preference("network.proxy.ftp","0.0.0.0")
firefox_profile.set_preference("network.proxy.ftp_port",1)
firefox_profile.set_preference("network.proxy.http","0.0.0.0")
firefox_profile.set_preference("network.proxy.http_port",1)
firefox_profile.set_preference("network.proxy.socks","0.0.0.0")
firefox_profile.set_preference("network.proxy.socks_port",1)
firefox_profile.set_preference("network.proxy.ssl","0.0.0.0")
firefox_profile.set_preference("network.proxy.ssl_port",1)
firefox_profile.set_preference("network.proxy.type",1)
firefox_profile.set_preference("network.proxy.share_proxy_settings",True)
driver = webdriver.Firefox(firefox_profile)
driver.get(web_address_desired)