在c#中使用Selenium时避免加载图像和其他资源,例如css

问题描述 投票:0回答:1

早上好。我正在开发一个蜘蛛来审查一些网页。我不能不使用硒。但是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#中我不知道该怎么做。

c# selenium selenium-webdriver selenium-chromedriver web-crawler
1个回答
1
投票

尝试一下,希望对您有所帮助


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

© www.soinside.com 2019 - 2024. All rights reserved.