3

Webブラウザーを作成しましたが、フォームのbutton1をクリックして、Webのボタンをクリックします。

private void button1_Click(object sender, EventArgs e)
{
    webBrowser1.Document.GetElementById("search").SetAttribute("value", IP.Text);
    webBrowser1.Document.GetElementById("").InvokeMember("click");
}

しかし、この文字列からボタンIDを取得することはできません

<input type="submit" value="→" class="button">

この問題を解決する方法はありますか?

4

2 に答える 2

6

<input>Webページのすべての要素を繰り返し処理してみてください。必要な値の要素が見つかったら、その要素をクリックできます。

foreach (HtmlElement el in webBrowser1.Document.GetElementsByTagName("input")
{
    if (el.GetAttribute("value").Equals("→"))
    {
        el.InvokeMember("click");
    }
}
于 2012-08-29T17:03:07.130 に答える
4

ウェブサイトはそれにフォームを投稿することを妨げません。したがって、いつでもそれを指すフォームを使用して独自のWebページを作成できます。

HTML

<form id="search" action="http://whois-service.ru/lookup/" method="post">
    <input type="text" class="text" name="domain" id="domain" />
    <input type="submit" value="" class="button" />
    <input id="submit" type="hidden" name="real" value="true2.1simpleJ" />
</form>

c#

private void button1_Click(object sender, EventArgs e)
{
    webBrowser1.DocumentText = "[The HTML from above here]";
    webBrowser1.Document.GetElementById("domain").SetAttribute("value", IP.Text);
    webBrowser1.Document.GetElementById("submit").InvokeMember("click");
}

WHOIS情報をスクレイピングすることを計画している場合。利用規約に違反していないことを確認する必要があります。ほとんどのWHOISサービスでは、自動チェックは許可されていません。

彼らがそうし、それがあなたがやろうとしていることであるなら、代わりにHttpWebRequestを使うことを検討するべきです、それははるかに効率的です。http://swhobby.blogspot.co.uk/2010/03/c-example-of-http-post.htmlの使用方法については、こちらの例をご覧ください。

于 2012-08-29T16:58:19.367 に答える