我正在修复一个模块,检查Google关键字排名,每个关键字每30秒。那天,Google阻止了请求,该模块对我们的项目非常重要。
我在我的模块中使用HtmlAgilityPack,代码是这样的:
adapter.notifyDataSetChanged();
以下是2个函数读/写cookie到二进制文件。
HttpWebRequest req = WebRequest.Create(uri) as HttpWebRequest;
req.Method = "GET";
req.UserAgent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2) Gecko/20100115 Firefox/3.6";
// read last cookie from disk, send it with request
CookieContainer cookies = ReadCookiesFromDisk(cookieFile);
req.CookieContainer = cookies;
// request google, with url like: https://www.google.com/search?start=0&num=20&q=may+do+huyet+ap&hl=vi
resp = req.GetResponse() as HttpWebResponse;
// save new cookie to disk
CookieContainer newCookies = req.CookieContainer;
WriteCookiesToDisk(cookieFile, newCookies); // write cookie to disk using Serialize Object to BinaryFormatter
1天后,Google会通过验证码阻止请求,我发现:
如果我更改了我的IP,我可以继续请求。所以,Google阻止了IP。
使用Opera启用Cookie,即使Google使用相同的关键字阻止我的模块,Opera仍会搜索Google,但如果我禁用Opera的Cookie,则Opera无法像我的模块那样搜索Google。
所以,我试图启用像Opera这样的cookie(就像我上面的代码一样),但Opera工作,但我的代码不起作用。
你能帮我吗?