我正在做一个小软件,它使用谷歌搜索在桌面软件中为人们显示结果。
用户输入关键字,搜索结果显示在列表框中。到目前为止,我对此没有任何问题。
我的实际问题是有时谷歌会阻止我的 IP 地址搜索,我必须等待一段时间才能正常搜索。
顺便说一句,虽然谷歌在软件中阻止了我的 IP 地址,但我仍然可以在网络浏览器中使用谷歌,很奇怪吧?
通常,我收到的错误消息是:
The remote server returned an error: (503) Server Unavailable.
这是我用来搜索谷歌的方法:
private string PROCESS_URL(string url)
{
HttpWebRequest request1 = (HttpWebRequest)WebRequest.Create(url);
request1.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11";
request1.Proxy = new WebProxy("xx.xx.xx.xx:xx"); // << my proxy address : port
HttpWebResponse response1 = (HttpWebResponse)request1.GetResponse();
StreamReader sr1 = new StreamReader(response1.GetResponseStream(), Encoding.UTF8);
string page_source1 = sr1.ReadToEnd();
return page_source1;
}
知道我应该考虑什么吗?也许我需要连同请求一起发送 cookie?我错过了一些属性吗?
那么这里的想法是让谷歌认为我是人而不是机器人