从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#,所以请不要评论太复杂的答案。或者至少试着让它变得容易理解。
提前感谢:)
下面是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 ?