从WebBrowser

时间:2016-09-17 16:20:19

标签: c# winforms

我问过this question的那个人情况如此。我需要从保存为字符串的网站获取一些数据。

我的问题是,我需要保存数据的网站,要求用户登录才能查看数据......

所以我的计划是让用户使用WebBrowser访问网站,然后登录,当用户在右侧页面时,单击一个自动保存数据的按钮。

我想使用与所使用的方法类似的方法,在我在开始时链接到的另一个问题的最佳答案中。

string data = doc.DocumentNode.SelectNodes("//*[@id=\"main\"]/div[3]/div/div[2]/div[1]/div[1]/div/div/div[2]/a/span[1]")[0].InnerText;

我尝试过这样的事情:

string data = webBrowser1.DocumentNode.SelectNodes("//*[@id=\"main\"]/div[3]/div/div[2]/div[1]/div[1]/div/div/div[2]/a/span[1]")[0].InnerText;

但你不能做“webBrowser1.DocumentNode.SelectNodes”

我也看到另一个问题的答案说,他使用HtmlAgilityPack,但我试图下载它,我不知道该怎么做..

C#不是最好的,所以请不要评论过于复杂的答案。或者至少试着让它变得可以理解。

提前致谢:)

1 个答案:

答案 0 :(得分:1)

以下是HtmlAgilityPack用法的一个示例:

public string GetData(string htmlContent)
{
      HtmlAgilityPack.HtmlDocument htmlDoc = new HtmlAgilityPack.HtmlDocument();
      htmlDoc.OptionFixNestedTags = true;
      htmlDoc.LoadHtml(htmlContent);
      if (htmlDoc.DocumentNode != null)
      {
          string data = htmlDoc.DocumentNode.SelectNodes("//*[@id=\"main\"]/div[3]/div/div[2]/div[1]/div[1]/div/div/div[2]/a/span[1]")[0].InnerText;
          if(!string.IsNullOrEmpty(data))
             return data;
      }
      return null;
}

编辑:如果您想在浏览器中模拟某些操作,我建议您使用Selenium而不是常规的WebBrowser控件。这是下载它的链接:http://www.seleniumhq.org/或使用NuGet下载它。这是一个关于如何使用它的好问题:How do I use Selenium in C#?