HtmlAgilityPackを使用したC#でのスクリーンキャプチャ


質問

適切なドキュメントがないため、 HtmlAgilityPackがhtmlコンテンツを読み込んだ後にC#でスクリーンキャプチャをサポートするかどうかはHtmlAgilityPackません。

では、HtmlAgilityPackを使用して(またはそれに沿って)スクリーンショットをつかむことができる方法があるので、ページ操作を行うたびに何が起こるかを視覚的に知ることができますか?

ここまで私の作業コードです:

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

現在のところ、それは削ると、出力のすべてpコンソールのページのをが、同時に私は、掻き取り、内容の画面のグラブを取得したいが、私は始めるためにどのように、どこか分かりません。

どんな助けでも大歓迎です。 TIA

人気のある回答

代わりにSelenium WebDriverを使用できますか?

最初に以下のNuGetパッケージをプロジェクトに追加する必要があります:

ページを読み込んでスクリーンショットを撮るのは簡単です...

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




ライセンスを受けた: CC-BY-SA
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ