0

ルーター ページにアクセスしてデータ (具体的には wifi セキュリティ コード) を取得するプログラムに取り組んでいます。コンピューターが既に正常に接続されている場合にのみ機能するため、ハッキング ツールではありません。問題は、既にページにあるデータを読み取りたい場合 (テキスト ボックスなど)、正規表現を使用する必要があることです。これは、ルーターが常に xml データ シートではなく html ソースを返すためです (ContentType を に設定した場合でも)。テキスト/xml)。

Webフォームからデータを読み取るWebフォームにデータを書き込む私のコードと同様の方法はありますか? 「パスワード」フィールドに書き込み、ルーターに送信するコード例を次に示します。

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);
}

Heres は、そのコードが loginInput にあるデータを書き込む Web ページからの html コードの抜粋です。

   <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"); 

html パーツの選択には XPATH を使用しますが、LINQ も使用できます。使い方のサンプルがたくさんあります

于 2012-06-01T21:44:34.907 に答える