Всем привет. Люди, подскажите каким образом в вебброузере на си шарпе можно захватить не весь сайт, а только его часть. например сайт http://kyivstar.ua/ru/feedback/form/ весь сайт грузить нет необходимости, если нужно показать только область которая отвечает за отправку сообщения. в принципе я попробовала сохранять текст сайта, потом обрезать то что лишнее и грузить опять в вебброузер. но 1) стили теряются. никакого красивого оформления.. 2) картинка с кодом подтверждения не грузится, а если как то и загрузить то думаю код будет уже не тот. пока все что пришло мне в голову, это: 1) грузить весь сайт в вебброузер 2) бля вебброузера как то установить параметры что бы небыло полосок прокрутки 3) программно прокрутить сайт в вебброузере что бы было видно только ту часть которая нужна. (пользователь не может крутить так как скролов нету, мы их отключили) НО я думаю что придумала не самый лучший вариант и даже если как то это реализовать то не знаю получу ли я то что нужно) На этом мои идеи исчерпаны) а дальше продвинуться мне не позволяет отсутствие практики программирования для веб Кто что посоветует? Сайт который я скинули лишь пример, с таким же успехом я могла бы скинуть ссылку на любой из сайтов. http://www.farmak.ua/ru/response/ http://www.viasat-channels.tv/channel/tv1000/feedback/ где есть отправка чего то и где нужно по всей видимости резать сайт или как... Спасибо за ответ.
да и еще, придумайте мне задания, что бы на практике я могла закрепить знания работы с потоками. Спасибо.
Сделай многопоточный поиск файлов например или многопоточный чекер мыл/яд/картон (нужное подчеркнуть) по теме. думаю тут неизбежно грузить всю страницу(до футера), вырезать форму, править теги и выпускать в веббраузер.
я так и делала, только когда сама начинаю править теги и т.д. у меня: страница теряет все CSS и становится серой и скучной. кроме того не получалось подгрузить отображение кода подтверждения. если грузить его (картинку кода) в отдельный контролл то думаю он не будет соответствовать тому, что должен был подгрузится с страницей, а соответственно получается ошибочка при отправке. хотя не уверена и сегодня вечером попробую сделать так. только печальный стиль отображения страницы все равно таким образом не изменить... так как сделать так что бы отображался и стиль? спасибо.
всем привет. пока так и ничего не получилось.. если у кого то есть какие то идеи - отпишите... хотя дамаю зря я начала писать это так как еще нужно учится.. спасибо.
Используй httpwebrequest P.S а если не умеешь,то отключи картинки в браузере. Вот код на VB.NET Отключение: Code: Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Dim regkey As Microsoft.Win32.RegistryKey = _ My.Computer.Registry.CurrentUser regkey.OpenSubKey("Software\Microsoft\Internet Explorer\Main", _ True).SetValue("Display Inline Images", "no") End Sub включение: Code: Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim regkey As Microsoft.Win32.RegistryKey = _ My.Computer.Registry.CurrentUser regkey.OpenSubKey("Software\Microsoft\Internet Explorer\Main", _ True).SetValue("Display Inline Images", "yes") End Sub переведи код в С#
спасибо конечно. код я перевела на си шарп только не пойму зачем отключать картинки? опишите пожалуйста что это нам даст..
страница будет быстрее грузиться,если речь идёт о слабом инете. Другого смысла упрощать страницу,я не вижу. З.Ы,стукни завтра в аську,раскурим твой косяк.
Natali Osina, загрузить полностью страницу, вырезать все лишнее кроме таблицы с формами, но оставить все между <head></head>. Ну и показать пользователю.
форма для отправки уведомлений, коментов и т.д. сама по себе маленькая. все что нужно с страницы с формой это только поля для ввода и картинка с кодом подтверждения. зачем грузить всю страницу тут? этого не нужно делать. смысл в том что бы в компонент веб браузер передать не всю страницу а только форму отправки, без меню, лишней инфо, кучей текста описания и т.д. тут вопрос не об уменшении размера, а об корректном отображении формы отправки как на сайте, с кодом подтверждения и т.д. Чаак спасибо за совет сегодня сама попробую и отпишу
Просто взять и обрезать страницу не получиться, тогда нарушиться её структура. Лучше сделать в программе нужную форму и сделать так, чтобы она отправляла определённый запрос на сайт.
я так делала, но тогда у меня проблема либо с проверкой отправилось сообщение или нет, либо с кодом подтверждения, так как тот который я грузила в pictureBox с ссылки например ...../captcha.php может быть неправильным.. я так думаю... и после отправок на некоторых сайтах вместо страницы с ошибкой и т.д., которую можно парсить на проверку отправилось или нет, выскакивает окошко на ява или пхп, что то типа того, которое вылазит после отправки персонального сообщения тут на форуме, с текстом отправилось или нет, и в любом случае грузится таже форма для отправки... грубо говоря сообщение об ошибке можно увидеть только в месседжбоксе, который генерирует ява или пхп. а страница переадрасации аналогична, без уведомлений об ошибке. вот почему я пришла к выводу что проще будет использовать компонент веббраузер для того что бы наочно видеть этот месседжбокс о правильности или неправильности отправки. да и в этом варианте проблем с картинкой кода подтверждения не должно быть 100 процентов. основная проблема в том что в веббраузере весь сайт отображать я сама не хочу) а только часть которая отвечает за отправку сообщения. таким образом вечером попробую способ который предложил человек Чаак и отпишу что получится. Если у кого есть еще идеи, просьба отписать) обещаю перепробовать все) хочу пока лето и не надо в универ подучить этот язык и научится самой писать программки)
Не забывай про cookie, не достаточно спарсить только лишь поля для отправки со страницы, нужны и cookie. В целом алгоритм примерно следующий: 1. Загрузить первый раз страницу 2. Сохранить все поля для отправки, а также cookie 3. Загрузить с нужными параметрами и cookie каптчу 4. Распознать каптчу 5. Передать на скрипт-обработчик уже заполенные поля для ввода и cookie, к которым фактически привязана каптча
не вижу смысла в твоих мыслях. Вот накатал на скорую руку проект.Всё работает.переведёшь только на C# Code: тут был код.не нравится?валите. З.Ы. Я же сказал стукнуть в аську!
Правильно будет сказать: "Дописал" Можно было просто дать ссылку. http://forum.vingrad.ru/forum/topic-285495/0.html
Я сказала Накатал!Этим кодом все пользуются. Если такой умный,чё сам не сделал:??!!!!!! И да,если решил пов****ваться,то ищи оригинал,а не копипаст.