Анализ кода Интернет страницы на C#
Суть работы программы: плагин отсылает серверу текущий адрес сайта, сервер проверяет есть ли сайт в базе. Если есть, то отсылает плагину строчку из части кода одной из страниц сайта.
Вопрос в том как проверить есть ли данная строчка на текущей странице сайта. Использую WebClient но как показывает практика он не всегда методом DownloadString скачаивает весь код. Т.е. смотрю в браузере код страницы и вижу нужную мне строчку (причем где нибудь в середине), но при этом WC этой строчки не видит.
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
string code = new StreamReader(response.GetResponseStream()).ReadToEnd();
но результат тот же. чтоб было наглядней ,то проверить можно на сайте letitbit. Просмотр кода в браузере отображает строчку - адрес каптчи
А вот переменная code данной строчки не содержит. Просто пропущена часть кода.
В свою очередь на многих других сайтах это работает. Возможно ли что стоит какая-нибудь защита?
Как вы подаёте запрос, так вам и отвечают.
Как вы подаёте запрос, так вам и отвечают.
Вот как раз про это я сегодня тоже подумал. У них изминилась система, раньше страница с капчей была статической, а теперь динамическая, на которую посылается пост запрос. Поэтому отсылая запрос без данных получаю просто страницу без картинки и на которой даже кнопка скачать не работает.
Куки опять же не отправляете.
На letitbite наверняка что-нить от "умников" стоит.
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
string code = new StreamReader(response.GetResponseStream()).ReadToEnd();
Этого определенно мало. Нужно полный(!) запрос генерировать.
Сейчас проблема в другом. Можно ли как нибудь анализировать не код страницы, а то что на ней сейчас отображено? В случае если captcha генерируется с каким нибудь случайным параметром типа NowDate() в теле скрипта, то анализ кода даст совершенно другое изображение, нежели отображено в браузере.
Я так понял смысл плагина состоит в том, чтоб не автоматизировать lertitbit закачку?.
Тогда в "ответе на запрос" вы получаете URL картинки и Cookies.
<b style="color:#FFFFFF;"></b></span>
</div>
<div class="cont c2" align="center">
<br />
[COLOR="Red"]<img src='http://letitbit.net/cap.php?jpg=1771ee517d1d1a9743d55f4e22edcopy.jpg' border='0'>[/COLOR]
<input type='text' maxlength='6' size='10' name='cap' class='name-login' style='width:80px; font-size:18px;background: url(http://images.letitbit.net/image/inpText_h25_bg.gif) top repeat-x; border: #838383 1px solid;'>
Сохраняете cookies для следующего запроса, анализируете картинку и результат вместе с предыдущими cookies и соответствующими параметрами отправляете в следующий запрос.
Дальше вам приходит страница "ожтдания60". выбрать второй фрейм - там скрипт. Как дальше получить ссылку - если честно, идей нет.
Тогда в "ответе на запрос" вы получаете URL картинки и Cookies.
<b style="color:#FFFFFF;"></b></span>
</div>
<div class="cont c2" align="center">
<br />
[COLOR="Red"]<img src='http://letitbit.net/cap.php?jpg=1771ee517d1d1a9743d55f4e22edcopy.jpg' border='0'>[/COLOR]
<input type='text' maxlength='6' size='10' name='cap' class='name-login' style='width:80px; font-size:18px;background: url(http://images.letitbit.net/image/inpText_h25_bg.gif) top repeat-x; border: #838383 1px solid;'>
Сохраняете cookies для следующего запроса, анализируете картинку и результат вместе с предыдущими cookies и соответствующими параметрами отправляете в следующий запрос.
Дальше вам приходит страница "ожтдания60". выбрать второй фрейм - там скрипт. Как дальше получить ссылку - если честно, идей нет.
Немного не то. Ща уже не о летитбите реч
Задача плагина - передать программе изображение по известной ссылке или части ссылки.
Например браузер открывает страницу с капчей код на которую выглядит как http://site.ru/test/cap.php?param=23444, тут мы лезим в базу знаем что картинку стоит искать по коду http://site.ru/test/cap.php?param=, а дальше найдя строку в коде смело считываем параметр и передаем ссылку http://site.ru/test/cap.php?param=23444 в основную программу. Все прекрасно, и в программе и в браузере одинаковые картинки!
Но вот пусть мы зашли на сайт на котором ссылка на капчу выглядит как http://site.ru/test/cap.php, плагин знает что именно эта ссылка генерирует капчу, но если ее передать в программу, то программа загрузит совершенно другую капчу (например на сайте показывают цифры 1242, а в программе загрузится картинка с цифрами 6822), из за того что в самом скрипте стоит случайный генератор. Вот собсна как получить картинку с текстом 1242 в программе, имея ее лишь в браузере