在 C# 中使用 Selenium 时避免加载图像和其他资源,如 css
Avoid load images and other resources like css when use Selenium in c#
早上好。
我正在开发一个蜘蛛来审查几个网页。不使用硒我做不到。但是 Selenium 的问题是它消耗大量资源并且速度很慢。我正在寻找优化方式。
据我所知,主要问题是 Selenium 加载了整个网站及其所有资源。但我只需要 javascript 和 html 为我工作。但我不需要图像。我能以某种方式阻止在 C# 中的 Selenium 浏览器中加载图像吗?
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium.Support.UI;
using (IWebDriver driver = SeleniumUtility.GetChromeDriverHidden())
{
driver.Url = "https://whosebug.com/";
string html = driver.PageSource;
}
internal static ChromeDriver GetChromeDriverHidden(bool hidden = true)
{
ChromeDriverService service = ChromeDriverService.CreateDefaultService(".");
service.HideCommandPromptWindow = true; // Hide output commands in console
var options = new ChromeOptions()
{
AcceptInsecureCertificates = true // This lets the browser accept the insecure certificate. Set hidden = false
};
if (hidden)
{
options.AddArgument("headless"); // hide window if added to options
}
return new ChromeDriver(service, options);
}
我明白了one solution,但在 C# 中我不知道该怎么做。
试试这个,希望对你有帮助
ChromeOptions options = new ChromeOptions();
options.addArguments("headless","--blink-settings=imagesEnabled=false");
或者
IWebDriver driver;
ChromeOptions options = new ChromeOptions();
options.AddUserProfilePreference("profile.default_content_setting_values.images", 2);
driver = new ChromeDriver(options);
查看原回答here
早上好。 我正在开发一个蜘蛛来审查几个网页。不使用硒我做不到。但是 Selenium 的问题是它消耗大量资源并且速度很慢。我正在寻找优化方式。 据我所知,主要问题是 Selenium 加载了整个网站及其所有资源。但我只需要 javascript 和 html 为我工作。但我不需要图像。我能以某种方式阻止在 C# 中的 Selenium 浏览器中加载图像吗?
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium.Support.UI;
using (IWebDriver driver = SeleniumUtility.GetChromeDriverHidden())
{
driver.Url = "https://whosebug.com/";
string html = driver.PageSource;
}
internal static ChromeDriver GetChromeDriverHidden(bool hidden = true)
{
ChromeDriverService service = ChromeDriverService.CreateDefaultService(".");
service.HideCommandPromptWindow = true; // Hide output commands in console
var options = new ChromeOptions()
{
AcceptInsecureCertificates = true // This lets the browser accept the insecure certificate. Set hidden = false
};
if (hidden)
{
options.AddArgument("headless"); // hide window if added to options
}
return new ChromeDriver(service, options);
}
我明白了one solution,但在 C# 中我不知道该怎么做。
试试这个,希望对你有帮助
ChromeOptions options = new ChromeOptions();
options.addArguments("headless","--blink-settings=imagesEnabled=false");
或者
IWebDriver driver;
ChromeOptions options = new ChromeOptions();
options.AddUserProfilePreference("profile.default_content_setting_values.images", 2);
driver = new ChromeDriver(options);
查看原回答here