Добрый вечер, знатоки.
Есть задача, авторизации и сбора инфы с сайта.
Первая проблема была в авторизации, так как там динамическая капча. Просто скачать по урлу нельзя так как капча динамическая(сорри за каламбур) и каждый раз картинка разная. Решение в том что бы использовать webBrowser и от туда уже вытаскивать картинку. Помогло решение вот отсюда
www.cyberforum.ru/visual-basic/thread903024.html#p...string uri = "http://joblab.ru/access.php/";
result = new string[] { "", "" };
webBrowser1.Navigate(uri);
webBrowser1.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(webBrowser1_DocumentCompleted);
while (webBrowser1.ReadyState != WebBrowserReadyState.Complete)
{
Application.DoEvents();
}
IHTMLDocument2 doc = (IHTMLDocument2)webBrowser1.Document.DomDocument;
IHTMLControlRange imgRange = (IHTMLControlRange)((HTMLBody)doc.body).createControlRange();
foreach (IHTMLImgElement img in doc.images)
{
imgRange.add((IHTMLControlElement)img);
imgRange.execCommand("Copy", false, null);
using (Bitmap bmp = (Bitmap)Clipboard.GetDataObject().GetData(DataFormats.Bitmap))
{
if (img.nameProp.Contains("PHPSESSID"))
{
Image imgCpt = bmp;
string captch = CaptchaWindow.Show(imgCpt);
string cookValue = img.nameProp.Replace("index.php?PHPSESSID=", "");
result = new string[2];
result[0] = captch;
result[1] = cookValue;
cook = cookValue;
}
}
}
webBrowser1.Document.GetElementById("auth_name_job").SetAttribute("value", login);
webBrowser1.Document.GetElementById("pass").SetAttribute("value", pass);
webBrowser1.Document.GetElementById("keystring").SetAttribute("value", result[0]);
foreach (HtmlElement he in webBrowser1.Document.GetElementsByTagName("input"))
{
if (he.GetAttribute("value").Equals("employer"))
{
he.InvokeMember("click");
break;
}
}
foreach (HtmlElement he in webBrowser1.Document.GetElementsByTagName("input"))
{
if (he.GetAttribute("value").Equals("Войти"))
{
he.InvokeMember("click");
break;
}
}
Дальше же, нормально собирается все , но после определенного количества запросов выходит страница где нужно ввести капчу. И вроде бы нужно сделать так же как до этого но возникает ошибка.
Делаем точно так же , но в Navigate вставляем другой урл. И все, не хочет работать. Почему так происходит? Понимаю что у меня не достаток знаний платформы, и не знаю как грамотно использовать эти элементы вот и прошу помощи у гуру.