C# 如何在C中打开浏览器进行登录并获取内容#

C# 如何在C中打开浏览器进行登录并获取内容#,c#,https,basic-authentication,C#,Https,Basic Authentication,我正在尝试使用正则表达式从HTML中获取字符串,它可以在本地HTML文件中工作。我唯一需要做的就是使用我的程序登录网站,从那个里获取html 问题是,我尝试使用3种不同的代码登录,但运气不好(我在这里找到了所有3种代码)。网站是HTTPS,也不支持Internet Explorer。不想使用fiddler或任何调试工具。我不在乎速度,只想简单地打开浏览器,登录并从显示的内容中获取html代码 有没有办法打开chrome/mozilla/opera并将显示的HTML传输到我的程序中?或者,如果不可

我正在尝试使用正则表达式从HTML中获取字符串,它可以在本地HTML文件中工作。我唯一需要做的就是使用我的程序登录网站,从那个里获取html

问题是,我尝试使用3种不同的代码登录,但运气不好(我在这里找到了所有3种代码)。网站是HTTPS,也不支持Internet Explorer。不想使用fiddler或任何调试工具。我不在乎速度,只想简单地打开浏览器,登录并从显示的内容中获取html代码

有没有办法打开chrome/mozilla/opera并将显示的HTML传输到我的程序中?或者,如果不可能,是否有某种通用的登录方式

有没有办法打开chrome/mozilla/opera并将显示的HTML传输到我的程序中

例如,您可以使用SeleniumWebDriver来实现这一点。它将允许您在目标网页上自动按下按钮、输入文本等。我不会称之为“调试工具”,它更像是一个测试框架。NuGet提供了您所需的所有软件包:

  • Selenium Web驱动程序
  • Selenium WebDriver支持类
  • 这里有一个非常简洁的用法示例:

    我正在尝试使用正则表达式从HTML中获取字符串


    您可以使用驱动程序从页面中提取所需的数据。

    simple
    HttpWebRequest如何?
    s?不起作用。网站在代码中的任何登录方法上返回“错误登录”。那个么你们如何在那个里登录呢?你打什么电话?我不能用密码登录。仅在打开浏览器的情况下。我也尝试过保存cookies的代码,但运气不好。那么我做错事情了?无法直接从打开的浏览器获取html?
    // Initialize the Chrome Driver
    using (var driver = new ChromeDriver())
    {
        // Go to the home page
        driver.Navigate().GoToUrl("https://yourdomainhere.net");
    
        // Get the page elements
        var userNameField = driver.FindElementById("username");
        var userPasswordField = driver.FindElementById("password");
        var loginButton = driver.FindElementByXPath("//input[@value='Login']");
    
        // Type user name and password
        userNameField.SendKeys("admin");
        userPasswordField.SendKeys("12345");
    
        // and click the login button
        loginButton.Click();
    
        // Extract the text and save it into result.txt
        var result = driver.FindElementByXPath("//div[@id='case_login']/h3").Text;
        File.WriteAllText("result.txt", result);
    }