早上好。我正在开发一个蜘蛛来审查一些网页。我不能不使用硒。但是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://stackoverflow.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