홈>
Winform 응용 프로그램을 가지고 있고 HTML을 긁어 모으고 있습니다. 때때로 Google은 보안을 위해 보안 문자 페이지를 리디렉션합니다.
여기서 시작하는 문제는 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을 다시 탐색합니다. cathpa를 확인하고 "thats"Google이 열려 있습니다. 그러나 30 초 후에 html을 다시 얻으려고하면. 보안 문자 페이지가 다시 표시됩니다. 나는 그것을 테스트, WebBrowser 더 이상 capthca 페이지를 표시하지 않지만 내 요청은 여전히 왜? 그들은 같은 로컬 호스트 같은 컴퓨터 같은 와이파이에서 요청 ..
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();
- 답변 # 1
어떤 빠른 비 응답 : 당신이하고있는 일은 reCAPTCHA가 존재하는 이유와 거의 비슷하기 때문에 (강조)를 완화 및/또는 예방하는 데 도움이됩니다 :
와이즈 비즈 <시간>업데이트 :
Q :
와이즈 비즈A :
"bot check"는 호출시기에 대한 자체 결정에 따라 실행됩니다.
내가 긁고있는 사이트가특히Google의 reCAPTCHA를 구현하고 있다고 가정합니다-제 실수입니다. 이 사이트는
뒤에있을 수 있습니다. (웹 애플리케이션 방화벽) 서비스는 보안 문자를 기반으로 일부 챌린지를 제공하는 봇 검사를 호출하거나 요청을 완전히 거부합니다.그럼 ...