首页 新闻 会员 周边 捐助

我想要用webbrowser 模拟google 的自动搜索。

0
悬赏园豆:20 [已解决问题] 解决于 2011-11-08 10:44

现在要获得google 输入框, 然后把关键字放到里面去,然后点击 google搜索 按钮。 

 

我的办法是://keyword 就是你要搜索的关键字

 HtmlElement html_input = webBrowser2.Document.All["lst-ib"];
                html_input.SetAttribute("value", KeyWord);
                foreach (var item in webBrowser2.Document.GetElementsByTagName("btnG"))
                {
                    if (item.GetType().ToString() == "submit")
                    {
                        HtmlElement html_btn = (HtmlElement)item;
                        html_btn.InvokeMember("click");
                    }

                }

 

问题是现在的值都是空的。 取不到 那个输入框。  奇怪 应该怎么搞呢。 我试baidu是可以的。可能google 跟百度的机制不一样。 帮帮忙!!!

btg.yoyo的主页 btg.yoyo | 初学一级 | 园豆:67
提问于:2011-11-06 18:33
< >
分享
最佳答案
0

baidu里面不知道你是怎么可以的,但是你上面这段代码肯定是不行的,里面有两处错误。我修改了一下并且加上了注释

            HtmlElement html_input = webBrowser2.Document.All["lst-ib"];
html_input.SetAttribute("value", KeyWord);
//foreach (var item in webBrowser2.Document.GetElementsByTagName("btnG"))
//你上面这句话中GetElementsByTagName("btnG")是查不出来东西的,因为btnG不是TagName,而是Name
foreach (var item in webBrowser2.Document.GetElementsByTagName("input"))
{
//if (item.GetType().ToString() == "submit")
//你上面这句话中如果item不为空,
//那么item.GetType().ToString()的值也只是System.Windows.Forms.HtmlElement
//怎么可能"System.Windows.Forms.HtmlElement"== "submit"?
if(((System.Windows.Forms.HtmlElement)item).Name=="btnG")
{
HtmlElement html_btn = (HtmlElement)item;
html_btn.InvokeMember("click");
}

}
收获园豆:20
LCM | 大侠五级 |园豆:6876 | 2011-11-06 23:26

1st-ib这名称你的好像也不对,数字1和字母l看着可能差不多,最好直接从html源码中复制。

LCM | 园豆:6876 (大侠五级) | 2011-11-07 08:41
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册