Captura de pantalla en C # usando HtmlAgilityPack

c# html-agility-pack

Pregunta

Debido a la falta de documentación adecuada, no estoy seguro de que HtmlAgilityPack admita la captura de pantalla en C # después de cargar el contenido html.

Entonces, ¿hay alguna manera de que pueda obtener una captura de pantalla más o menos con (o junto con) HtmlAgilityPack para tener una idea visual de lo que sucede cada vez que hago manipulaciones de página?

Aquí está mi código de trabajo hasta ahora:

using HtmlAgilityPack;
using System;

namespace ConsoleApplication4
{
    class Program
    {
        static void Main(string[] args)
        {
            string urlDemo = "https://htmlagilitypack.codeplex.com/";
            HtmlWeb getHtmlWeb = new HtmlWeb();
            var doc = getHtmlWeb.Load(urlDemo);
            var sentence = doc.DocumentNode.SelectNodes("//p");
            int counter = 1;           
            try
            {
                foreach (var p in sentence)
                {
                    Console.WriteLine(counter + ". " + p.InnerText);
                    counter++;
                }
            }
            catch (Exception e)
            { 
                Console.WriteLine(e);
            }  
            Console.ReadLine();            
        }
    }
}

Actualmente, raspa y saca todas las p de la página en la consola, pero al mismo tiempo quiero obtener una captura de pantalla de los contenidos raspados pero no sé cómo ni por dónde empezar.

Cualquier ayuda es muy apreciada. TIA

Respuesta popular

¿Podrías usar Selenium WebDriver en su lugar?

Primero deberá agregar los siguientes paquetes de NuGet a su proyecto:

Cargar una página y tomar una captura de pantalla es tan simple como ...

using System;
using System.Drawing.Imaging;
using System.IO;
using OpenQA.Selenium;
using OpenQA.Selenium.Firefox;
using OpenQA.Selenium.Support.UI;

namespace SeleniumTest
{
    class Program
    {
        static void Main(string[] args)
        {
            // Create a web driver that used Firefox
            var driver = new FirefoxDriver(
                new FirefoxBinary(), new FirefoxProfile(), TimeSpan.FromSeconds(120));

            // Load your page
            driver.Navigate().GoToUrl("http://google.com");

            // Wait until the page has actually loaded
            var wait = new WebDriverWait(driver, new TimeSpan(0, 0, 10));
            wait.Until(d => d.Title.Contains("Google"));

            // Take a screenshot, and saves it to a file (you must have full access rights to the save location).
            var myDesktop = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
            ((ITakesScreenshot)driver).GetScreenshot().SaveAsFile(Path.Combine(myDesktop, "google-screenshot.png"), ImageFormat.Png);

            driver.Close();
        }
    }
}


Related

Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow