如何使用C#以编程方式登录网站

时间:2015-12-28 12:09:55

标签: c# web-scraping

我想使用C#登录此网站: 这是我的尝试,但它将我发送到第一页。登录后不应该返回我的下一页,请帮我解决这个问题:

string formParams = 
string.Format("mail={0}&password={1}", store@admin.com", "admin");
      string cookieHeader;
      WebRequest req = WebRequest.Create("http://muslimgowns.com/dashboard/login/public_login");
            req.ContentType = "application/x-www-form-urlencoded";
            req.Method = "POST";
            byte[] bytes = Encoding.ASCII.GetBytes(formParams);
            req.ContentLength = bytes.Length;
            using (Stream os = req.GetRequestStream())
            {
                os.Write(bytes, 0, bytes.Length);
            }
            WebResponse resp = req.GetResponse();
            cookieHeader = resp.Headers["Set-cookie"];
            using (StreamReader sr = new  StreamReader(resp.GetResponseStream()))
            {
                string pageSource = sr.ReadToEnd();
                File.AppendAllText("first.txt", pageSource);
            }

            string pageSource1;
            string getUrl = "http://muslimgowns.com/dashboard/home";
            WebRequest getRequest = WebRequest.Create(getUrl);
            getRequest.Headers.Add("Cookie", cookieHeader);
            WebResponse getResponse = getRequest.GetResponse();
            using (StreamReader sr = new StreamReader(getResponse.GetResponseStream()))
            {
                pageSource1 = sr.ReadToEnd();
                File.AppendAllText("second.txt", pageSource1);
            }
        }

1 个答案:

答案 0 :(得分:4)

您可以使用Selenium WebDriver自动执行登录过程或任何其他过程。 http://www.seleniumhq.org/

基本思路是: 1.在您的C#项目中包含Selenium Webdriver 2.转到www.fastundercar.com

driver.Url = "http://www.fastundercar.com";
  1. 查找用户名,密码字段和提交按钮(按ID,名称或类别),例如

    IWebElement username = driver.FindElement(By.Name(" ULogin $ txtUserName"));

  2. 设置用户名和密码字段的值

  3. 提交按钮 -

    driver.findElement(By.id("提交&#34))。单击();

  4. 查看以下链接以供参考: http://www.seleniumhq.org/docs/03_webdriver.jsp

相关问题