我问过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#不是最好的,所以请不要评论过于复杂的答案。或者至少试着让它变得可以理解。
提前致谢:)
答案 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#?。