| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > .NET для новичков > Получить текст открытого блокнота |
| Автор: Cobalt 12.8.2010, 20:04 |
| Вообщем доброго времени суток всем. вопрос мне довольно трудно сформулировать, щаз попробую объяснить. чтобы облегчить свою работу решил написать не большую программу. обдумал некоторые детали. установил c# 2005 express. суть проблемы: имеется станица в IE, я нажимаю просмотр кода, открывается блокнот, собственно мне надо получить доступ к коду в блокноте, и далее проделывать с ним операции поиска/копирования и т.п. как реализовать |
| Автор: Cheloveck 12.8.2010, 20:27 |
| А почему бы не отправить запрос на сервер и не получить весь код из программы? |
| Автор: Exai1e 12.8.2010, 20:47 | ||||
| Cobalt, "не с той стороны смотрите" чем не утраивает вариант, например такой: если я правильно понял задачу
p.s. походу не правильно, т.к. что бы выбралась инфа из бд, надо для начала обратиться к странице :-/ тогда можно так, но это если не нужно на странице выбирать параметры товара или еще что (если надо, то можно посылать post запрос с параметрами
|
| Автор: Cobalt 12.8.2010, 21:43 |
| Exai1e, хм, это я та понимаю для статичного файла а инфа на странице генериться разная в таблице, т.е. я запустил эту байду, выбрал товар, загрузилась талица с описанием грубо говоря, из БД. т.е. насколько я понимаю единственный способ получить код динамически сгенеренной страницы это из блокнота, или хитрым способом обратиться к самому IE и вытащить оттуда (это конечно лучше) далее ищу в коде нужные мне строки и копирую инфу из них |
| Автор: Exai1e 12.8.2010, 21:50 |
| Cobalt, да это для статичного файла (изначально не так понял задачу), но думаю можно попробовать отправить post запрос странице (пусть и локальной) с необходимыми данными (например группой товаров, которую нужно выбрать из бд и т.д.) не уверен что получится, но думаю попробовать стоит, поиск по форуму .net параметром "post" выдает довольно много тем с реализациями, например: http://forum.vingrad.ru/forum/topic-291628/unread-1.html http://forum.vingrad.ru/forum/topic-302797/unread-1/kw-%D0%BE%D1%82%D0%BF%D1%80%D0%B0%D0%B2%D0%B8%D1%82%D1%8C-%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D0%B5-%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D0%BE%D0%BC-post/hl/post/index.html ... etc зы. честно не сталкивался с такой задачей, но первое что бы попробовал, думаю что это post запросы зыы. если получение данных из бд реализованно вами, то может стоит "прикрутить" сервис (например WCF, XML), который будет возвращать данные в удобном вам виде, тогда можно будет написать к нему полноценный детсктоп_клиент |
| Автор: Cobalt 12.8.2010, 22:13 | ||
нет что Вы, я ваще не программист)) и понятия не имею кто этот каталог делал и как он работает
да кто бы знал какой там запрос надо отправить (( к тому же я выбираю товары по списку суть в чем (это как я придумал), выбрал товар, создал html-шаблон с нужным именем товара, указал проге файл шаблона, она смотрит в открытый блокнот (или в сам браузер), берет нужные значения из ячеек таблицы, вставляет их в нужные места в шаблон, ну это дело техники, как нить с поиском/вставкой думаю разберусь, шаблон сохраняется, и далее процесс в цикле задолбался я копировать/вставить нажимать |
| Автор: diadiavova 12.8.2010, 22:19 |
| Cobalt, а каким образом страница попадает в ие, и что отображается в адресной строке? Не пробовал запросить страницу по этому адресу? Добавлено через 4 минуты и 26 секунд А в таком случае о каком доступе речь? Я думал о программном. |
| Автор: Cobalt 12.8.2010, 23:14 | ||
имелось ввиду я не работаю им) хочу просто облегчить себе жизнь
каталог организован не известным мне способом, для его работы запускается некий экзешник - сервер каталога. может все это на яве работает также имеются базы данных, текстовый в перемешку с хрен знает каким форматом |
| Автор: Cobalt 13.8.2010, 07:15 |
http://localhost:8090/Index/katalog_new/tom_tom10_loca8 собственно чтоб узнать этот адрес нуно же все равно обращаться к IE, как дело видимо сводится к этому |
| Автор: diadiavova 13.8.2010, 08:37 |
| Cobalt, в принципе, если нужно простое решение, то можешь сделать так: Бросаешь на форму WebBrowser, загружаешь страницу в него и дальше действуешь так же, как и с помощью ие, только к странице у тебя будет программный доступ, то есть ты программно сможешь извлекать данные, переходить на другую страницу по ссылке итд. Думаю, в твоем случае этого будет достаточно. |
| Автор: Cobalt 13.8.2010, 09:38 | ||
да, чем проще тем лучше, прога тока для меня впринципе я пересмотрел решение, работать с WebBrowser думаю будет конечно полегче, наверное там и методы готовые работы с тегами есть оо, озарение теперь надо попробывать, будет ли веб браузер кушать страницу эту) а я уже нашел способ получения урл из открытого ИЕ, а дело вроде оказывается проще приду домой буду пробывать |
| Автор: diadiavova 13.8.2010, 09:44 |
Будет, но сервер все равно запустить придется. Если ты на нужные страницы переходишь по ссылкам, то урл можно из этих ссылок и извлекать...опять-таки программно. |
| Автор: Cobalt 14.8.2010, 22:12 |
| в продолжение темы что-то я обгуглился уже хочу получить текст элемента по классу вот элемент <td width="133" valign="top" height="100%" align="left" bgcolor="#dfedfe" class="tab_head">Назначение, область применения</td> хочу перебрать элементы с таким классом, но как я понимаю встроенных средств нет мож кто поможет? |
| Автор: wester 14.8.2010, 22:27 | ||
Cobalt,
как нет ? а регулярные выражения на что ? |
| Автор: Cobalt 14.8.2010, 23:08 |
имелось ввиду такое webBrowser1.Document.GetElementsByTagName а затем применить там сразу InnerText для получения текста |
| Автор: gambit 15.8.2010, 00:43 |
| Сейчас скажу весч, которую ни разу не пробовал, возможно это глупость, но почему то это сразу пришло в голову. html - текст с тегами xml - текст с тегами что мешает работать с html как с xml??? Да, понимаю, что все это счастье упадет, так как нет заголовка и root элемента, но с другой стороны, что мешает их подставить? |
| Автор: diadiavova 15.8.2010, 08:53 | ||
Что это значит? Класс в пределах документа не уникален, поэтому неясно, что именно тебе надо: первый элемент с таким значением этого атрибута, первый такой элемент td, первый элемент в некоторой ветке документа или объединенный текст всех элементов этого класса В принципе, из коллекции элементов, полученной стандартными средствами, можно извлечь то что надо например одной из линк-функций, так например
|
| Автор: Cobalt 16.8.2010, 07:48 |
понимаю, несколько криво звучит хотел сказать что надо получить текст всех ячеек td у которых есть такой вот класс вот именно это и хотел это я так понимаю linq? diadiavova, есть еще вопросы по html, мож тему создать отдельную? |
| Автор: diadiavova 16.8.2010, 08:00 |
Да, но в соответствующем разделе |
| Автор: Cobalt 16.8.2010, 09:02 |
да я имел ввиду общие вопросы по htmlelement или там по работе webbrowser ох, пытался я как то давненко с линк разобраться, мозг сломал приду домой буду пробывать |
| Автор: diadiavova 16.8.2010, 09:06 |
Не так страшен черт, как его малюют. Это все придумали для облегчения жизни, а не наоборот. |
| Автор: Cobalt 16.8.2010, 19:15 |
| вот же ш блин же ш, с# 2005 express не поддерживает linq что ли ? (( Добавлено через 9 минут и 6 секунд а не, подключить я подключил, но что то ругается, не распознает фукцию |
| Автор: wester 16.8.2010, 19:27 |
| Cobalt, что пишешь и как ругается ? |
| Автор: Cobalt 16.8.2010, 19:45 |
| wester, короче подключить дало тока using System.Data.Linq; а надо для работы как я понимаю using System.Linq; а ругается на эту фукцию, : webbrowser1.Document.All.Where( x => x.GetAttribute("class") == "tab_head"); которую любезно написал дядя Вова |
| Автор: diadiavova 16.8.2010, 20:17 | ||||
Или поставь более позднюю версию или по старинке - циклами.
В коллекцию elements добавляются все ячейки с заданным классом. Или можно попробовать подключить библиотеку System.Core и импортировать пространство System.Linq, только синтаксис будет другим
Но это уже совсем другая песня. |