我有winform应用程序,我正在刮HTML.Sometimes谷歌重定向我的验证码页面。
问题从这里开始,我正在使用HtmlAgilityPack并获得html,如:
try
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36";
request.Timeout = 10000;
WebResponse response = request.GetResponse();
using (var reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8))
{
return reader.ReadToEnd();
}
}
catch (WebException e)
{
//Here I am getting captcha page
using (var sr = new StreamReader(e.Response.GetResponseStream()))
return sr.ReadToEnd();
}在将html加载到我的HtmlDocument之后。我在找卡普查。如果html包含,我正在打开WebBrowser并再次导航相同的url,我正在验证是否打开。但30秒后,如果我再试着得到html。又给我看了一页卡普查。我测试它,WebBrowser不再显示capthca页面,但是我的请求仍然显示为什么是?他们都要求同一台本地主机、同一台计算机、相同的wifi。
var webBrowser1 = new WebBrowser
{
ScriptErrorsSuppressed = true,
AllowNavigation = true,
Dock = DockStyle.Fill
};
BrowserSettings(webBrowser1);
webBrowser1.Refresh(WebBrowserRefreshOption.Completely);
//Here I am NOT getting captcha page
webBrowser1.Navigate(searchUrl);
if (DialogForms == null)
{
DialogForms = new Form
{
WindowState = FormWindowState.Maximized,
TopMost = true
};
}
DialogForms.Controls.Add(webBrowser1);
DialogForms.ShowDialog();发布于 2018-08-21 21:53:56
快速回答:因为您所做的几乎就是reCAPTCHA存在的原因,并且有助于减轻和/或防止(强调我的):
reCAPTCHA使用高级风险分析引擎和自适应CAPTCHA来,以防止自动化软件在您的站点上进行滥用活动。 ...it使用了先进的风险分析技术,考虑到用户对CAPTCHA的整个参与,并对区分人类和机器人的广泛线索进行了评估。
更新:
问:
但我的问题是,怎样才能理解reCAPTCHA我的请求方法。例如,我通过WebBrowser或via Request:Response和从Stream读取html。İt不显示WebBrowser的reCAPTCHA,但对于请求:Response,它显示的是
答:
WAF (Web应用防火墙)服务的背后,它将调用基于CAPTCHA的bot检查(或者完全拒绝请求)。嗯..。
https://stackoverflow.com/questions/51956013
复制相似问题