C# (.NET) Options for Headless Browsing?

I previously worked with Python and utilized the Mechanize library for developing a GUI web scraping tool. Now, I’ve transitioned to the .NET framework and am aiming to recreate that application in C#. Unfortunately, I am struggling to find a comparable library in .NET. I require a headless browser that supports form filling and submission. While a JavaScript parser is not essential, having it would be advantageous.

If you're moving to C# and need a headless browsing solution similar to Python's Mechanize, a great option to consider is Playwright for .NET. It's a solid choice for your requirements and suits headless browsing tasks efficiently.

To get started, you'll want to install the Playwright package:

dotnet add package Microsoft.Playwright

Once installed, you can easily automate form filling and submission like this:

using Microsoft.Playwright;
using System.Threading.Tasks;

public class BrowserAutomation
{
    public static async Task Example()
    {
        var playwright = await Playwright.CreateAsync();
        var browser = await playwright.Chromium.LaunchAsync(new BrowserTypeLaunchOptions
        {
            Headless = true // Set to false if you need to see the browser for debugging
        });
        var page = await browser.NewPageAsync();

        await page.GotoAsync("https://example.com");
        await page.FillAsync("#form-input-id", "input-value");
        await page.ClickAsync("#submit-button");

        await browser.CloseAsync();
    }
}

Playwright supports parallel execution, which might come in handy for optimizing large-scale operations. Although it provides JavaScript execution and other features under the hood, you can stick to its powerful headless browsing capabilities.