0

我正在开发一个访问路由器页面并检索数据(特别是 wifi 安全代码)的程序。它不是黑客工具,因为它只有在您的计算机已经成功连接到它的情况下才有效。问题是,当我想读取页面上已经存在的数据(在文本框中)时,我必须使用正则表达式,因为路由器总是返回 html 源而不是说 xml 数据表(即使我将 ContentType 设置为文本/xml)。

有没有一种类似于我的代码的方法,可以将数据写入从 webforms 读取数据的 webforms。这是我的代码示例,它写入“密码”字段并将其提交给路由器。

string formParams = string.Format("password={0}", loginInput);
WebRequest loginPage = WebRequest.Create(url);
loginPage.ContentType = "application/x-www-form-urlencoded";
loginPage.Method = "POST";
byte[] bytes = Encoding.ASCII.GetBytes(formParams);
loginPage.ContentLength = bytes.Length;
using (Stream os = loginPage.GetRequestStream())
{
   os.Write(bytes, 0, bytes.Length);
}

这是网页中的 html 代码摘录,该代码在其中写入 loginInput 中的数据。

   <td class="form_label">Password&nbsp;:</td>
<td class="form_data">
<input type="password" id="password" name="password" value="" tabindex="100" />
</td>
4

1 回答 1

1

使用HTML 敏捷包

例如,以下是修复 HTML 文件中所有 href 的方法:

HtmlDocument doc = new HtmlDocument();
doc.Load("file.htm");
foreach(HtmlNode link in doc.DocumentElement.SelectNodes("//a[@href"])
{
    HtmlAttribute att = link["href"];
    att.Value = FixLink(att);
}
doc.Save("file.htm"); 

它使用 XPATH 来选择 html 部分,但也可以使用 LINQ。有很多示例如何使用它

于 2012-06-01T21:44:34.907 回答