Screenshot in C # mit HtmlAgilityPack

c# html-agility-pack

Frage

Aufgrund des Mangels an geeigneter Dokumentation bin ich nicht sicher, ob HtmlAgilityPack die Bildschirmaufnahme in C # unterstützt, nachdem der HTML-Inhalt HtmlAgilityPack .

Gibt es einen Weg, wie ich mehr oder weniger einen Screenshot mit (oder zusammen mit) HtmlAgilityPack erstellen kann, so dass ich einen visuellen Hinweis darauf haben kann, was passiert, wenn ich Seitenmanipulationen mache?

Hier ist mein Arbeitscode soweit:

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();            
        }
    }
}

Zur Zeit scrappt es und gibt alle p der Seite in der Konsole aus, aber gleichzeitig möchte ich einen Screenshot der abgekratzten Inhalte bekommen, aber ich weiß nicht wie und wo ich anfangen soll.

Jede Hilfe wird sehr geschätzt. TIA

Beliebte Antwort

Könnten Sie stattdessen Selenium WebDriver verwenden?

Sie müssen zuerst die folgenden NuGet-Pakete zu Ihrem Projekt hinzufügen:

Das Laden einer Seite und das Erstellen eines Screenshots ist dann so einfach wie ...

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

Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow