从web浏览器中打开的网站获取数据

本文关键字:网站 获取 数据 web 浏览器 | 更新日期: 2023-09-27 18:07:18

我对问这个问题的人也有同样的情况。我需要从一个保存为字符串的网站得到一些数据。

我这里的问题是,我需要保存数据的网站,要求用户登录查看数据…

所以这里我的计划是让用户使用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#,所以请不要评论太复杂的答案。或者至少试着让它变得容易理解。

提前感谢:)

从web浏览器中打开的网站获取数据

下面是html lagilitypack使用的一个例子:

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下载。这是一个关于如何使用它的好问题:我如何在c#中使用Selenium ?