Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Анализ кода Интернет страницы на C#

54K
29 января 2010 года
foolsoft
12 / / 29.01.2010
Возник такой вопрос. Есть 2 приложения. Одно из них - плагин для IE. Второе своеобразный сервер.
Суть работы программы: плагин отсылает серверу текущий адрес сайта, сервер проверяет есть ли сайт в базе. Если есть, то отсылает плагину строчку из части кода одной из страниц сайта.

Вопрос в том как проверить есть ли данная строчка на текущей странице сайта. Использую WebClient но как показывает практика он не всегда методом DownloadString скачаивает весь код. Т.е. смотрю в браузере код страницы и вижу нужную мне строчку (причем где нибудь в середине), но при этом WC этой строчки не видит.
842
29 января 2010 года
sigmov
301 / / 16.09.2008
Поищите в HttpWebRequest
54K
29 января 2010 года
foolsoft
12 / / 29.01.2010
Попробовал.

 
Код:
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
string code = new StreamReader(response.GetResponseStream()).ReadToEnd();


но результат тот же. чтоб было наглядней ,то проверить можно на сайте letitbit. Просмотр кода в браузере отображает строчку - адрес каптчи

Цитата:
<img src='http://letitbit.net/cap.php?jpg=0592b357a937bf4ee827b9320.jpg' border='0'>



А вот переменная code данной строчки не содержит. Просто пропущена часть кода.

В свою очередь на многих других сайтах это работает. Возможно ли что стоит какая-нибудь защита?

257
29 января 2010 года
kosfiz
1.6K / / 18.09.2005
А что у вас, собственно, содержит url? Если вы хотите увидеть капчу то где? При загрузке файла? Если да, то вам нужно метод POST использовать и параметры передавать на соответствующий файл: uid, md5crypt, name, realname - и т.д.
Как вы подаёте запрос, так вам и отвечают.
54K
30 января 2010 года
foolsoft
12 / / 29.01.2010
Цитата: kosfiz
А что у вас, собственно, содержит url? Если вы хотите увидеть капчу то где? При загрузке файла? Если да, то вам нужно метод POST использовать и параметры передавать на соответствующий файл: uid, md5crypt, name, realname - и т.д.
Как вы подаёте запрос, так вам и отвечают.



Вот как раз про это я сегодня тоже подумал. У них изминилась система, раньше страница с капчей была статической, а теперь динамическая, на которую посылается пост запрос. Поэтому отсылая запрос без данных получаю просто страницу без картинки и на которой даже кнопка скачать не работает.

842
02 февраля 2010 года
sigmov
301 / / 16.09.2008
А вы строку запроса генерировали? - наверняка нет.
Куки опять же не отправляете.

На letitbite наверняка что-нить от "умников" стоит.

 
Код:
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
string code = new StreamReader(response.GetResponseStream()).ReadToEnd();


Этого определенно мало. Нужно полный(!) запрос генерировать.
54K
15 февраля 2010 года
foolsoft
12 / / 29.01.2010
Спасибо. С этим уже давно разобрался, просто как уже было сказано я не полностью формировал запрос, поэтому картинка там просто не генерировалась на странице.

Сейчас проблема в другом. Можно ли как нибудь анализировать не код страницы, а то что на ней сейчас отображено? В случае если captcha генерируется с каким нибудь случайным параметром типа NowDate() в теле скрипта, то анализ кода даст совершенно другое изображение, нежели отображено в браузере.
842
16 февраля 2010 года
sigmov
301 / / 16.09.2008
Цитата:
Сейчас проблема в другом. Можно ли как нибудь анализировать не код страницы, а то что на ней сейчас отображено? В случае если captcha генерируется с каким нибудь случайным параметром типа NowDate() в теле скрипта, то анализ кода даст совершенно другое изображение, нежели отображено в браузере.




Я так понял смысл плагина состоит в том, чтоб не автоматизировать lertitbit закачку?.

Тогда в "ответе на запрос" вы получаете URL картинки и Cookies.

 
Код:
<span style="font-size:16px">Скачать файл. <strong>Teen-RUS.rar</strong>
     <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". выбрать второй фрейм - там скрипт. Как дальше получить ссылку - если честно, идей нет.
54K
16 февраля 2010 года
foolsoft
12 / / 29.01.2010
Цитата: sigmov
Я так понял смысл плагина состоит в том, чтоб не автоматизировать lertitbit закачку?.

Тогда в "ответе на запрос" вы получаете URL картинки и Cookies.
 
Код:
<span style="font-size:16px">Скачать файл. <strong>Teen-RUS.rar</strong>
     <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 в программе, имея ее лишь в браузере

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог