Web客户端上载值

时间:2010-12-20 20:58:08

标签: c# webclient web-crawler

我想创建一个在文本框中输入值并执行按钮操作的桌面应用程序,例如设计一个在google.com上的谷歌搜索框中输入值的应用程序,并执行操作,就像任何人按下搜索按钮时我写了一个代码但是它引发了异常远程服务器返回了一个错误:(405)Method Not Allowed。

WebClient wc = new WebClient();
string uri = "http://google.com";

NameValueCollection nvc = new NameValueCollection();

nvc.Add("search", "afnan");            

byte[] response = wc.UploadValues(uri, nvc);
textBox1.Text=Encoding.ASCII.GetString(response);

1 个答案:

答案 0 :(得分:5)

UploadValues正在尝试执行POST(默认情况下,至少;允许使用其他一些动词,但它们基本上仍然将其视为正文有效负载)。 听起来就像您只想要http://www.google.com/search?q=afnan这样的GET查询 - 所以只需要url-encode "afnan"。但请注意,您应始终观察目标网站的Terms and Conditions - 特别是第5部分:

  

您明确同意不通过任何自动方式(包括使用脚本或网络抓取工具)访问(或尝试访问)任何服务

如果你这样做,预计会被列入黑名单。