C# HtmlAgilityPack-文本框中不显示任何内容
我有一个带有文本框的Windows窗体,代码假设使用我通过chromes developer工具获得的xpath从网站中提取信息,并将其显示在所述文本框中 问题是当我运行程序时,文本框中没有显示任何内容。我不确定用于获取信息的代码是否错误,或者显示所述信息的代码是否错误。请注意,此代码使用HtmlAgilityPack 以下是相关代码:C# HtmlAgilityPack-文本框中不显示任何内容,c#,xpath,visual-studio-2017,richtextbox,html-agility-pack,C#,Xpath,Visual Studio 2017,Richtextbox,Html Agility Pack,我有一个带有文本框的Windows窗体,代码假设使用我通过chromes developer工具获得的xpath从网站中提取信息,并将其显示在所述文本框中 问题是当我运行程序时,文本框中没有显示任何内容。我不确定用于获取信息的代码是否错误,或者显示所述信息的代码是否错误。请注意,此代码使用HtmlAgilityPack 以下是相关代码: private void richTextBox1_TextChanged(object sender, EventArgs e) {
private void richTextBox1_TextChanged(object sender, EventArgs e)
{
string Url = "https://apps.ko.com/aami/iguest/default.asp";
HtmlWeb web = new HtmlWeb();
HtmlAgilityPack.HtmlDocument doc = web.Load(Url);
string username = doc.DocumentNode.SelectNodes("/html/body/center/div/table/tr[1]/td[2]/strong")[0].InnerText;
string password = doc.DocumentNode.SelectNodes("/html/body/center/div/table/tr[2]/td[2]/strong")[0].InnerText;
string summary = doc.DocumentNode.SelectNodes("/html/body/center/div/table/tr[4]")[0].InnerText;
richTextBox1.Text = "User Name: " + username + " | Password: " + password + " | Summary: " + summary;
}
内联网页面上列出了一个用户名和密码,我正试图从网页中提取并在文本框中显示它,只要此应用程序在域计算机上运行,它就应该能够访问该页面并显示所需信息。我不想登录任何东西,只是从网页中提取一些文本
你们中的任何人都无法看到该页面,因为您的页面不在只能从其访问的域中
以下是由于安全原因更改了代码中的网址的HTML页面
来宾无线接入
宾客可以使用下面的登录凭据访问无线服务
用户ID:
KOGUEST
密码:
P@ssword(密码区分大小写。)
密码每周在美国东部时间周六午夜更新一次。
为您的客人准备
您正在从浏览器复制xpath,这是非常不可靠的。我不知道这个网站是否有一个不同的HTML取决于地区。但我没有“强”标签或“中心”标签
做一个正确的xpath,它不依赖于从浏览器获得的xpath——它们很容易发生更改,如果发生小的更改,就会破坏您的程序(xpath在我这方面不起作用的事实已经证明了这一点)。做一件简单的事情很容易。因为您现在所拥有的并没有给出您想要的东西的明确指示,而依赖于标记的属性和内容的xpath则会给出
我还想进一步阐述你的后续问题,因为我已经知道你想做什么了。。。您不能通过使用HtmlAgilityPack输入用户名和密码,然后登录。您可以使用Fiddler分析网页包,并复制您的登录方式。或者,您可以选择更简单的方法,将Selenium与无头浏览器(如Phantomjs)结合使用
最后。当您确实让XPath查看页面源代码时。不要检查滤芯。页面源表示加载到HtmlDocument中的HTML。如果您在站点上执行某些步骤后检查元素,您将获得源代码(例如,如果站点依赖JS og ajax更新内容)。使用该Html,您的xpath将丢失
tbody
。在表
标记内,有一个tbody
标记,表的行在该tbody
内。例如,第一个xpath应该是/html/body/center/div/table/tbody/tr[1]/td[2]/strong
我读过一些文章,其中come错误地添加了tbody,但是我使用chrome获得了xpath,所以它可能是错误的,我不知道如何在Firefox中编写xpath my Self,右键单击一个元素,按“inspect”。然后右键单击Html标记并复制xpath。您还可以在控制台中使用$x(“MyXPath here”)来缩短和测试xpath。其思想是编写类似于//td[text()='User ID:']/以下同级::td/strong
的内容,而不是完整路径。注意开头的双斜杠/
。有了这个,它可以在任何地方找到它。镀铬检查工具也很好。