Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
8 / 8 / 1
Регистрация: 07.03.2014
Сообщений: 43
.NET 4.x

Парсинг и отображение только части html-кода источника

17.03.2014, 20:56. Показов 1447. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
чем воспользоваться для фильтрации открываемой страницы, чтобы отобразить только нужны блок из получаемого с сайта кода страницы? т.е. чтоб это выглядело красиво, и мы не видели других объектов странички перед тем как она вдруг уменьшалась.
что-то похожее можно увидеть при логине через учетку майков в том же скайпе. грубо говоря загружается страничка login.live.com, а мы видим только остаток от этой странички.
еще было бы интереснее с целью так саказать экономии трафика, предварительно узнавать блоки кода страницы, а затем загружать только нужные. или не обязательно предварительно подгружать блоки, а сразу приступить к загружке только части блоков.

сопутствующий вопрос: как заблокировать потерю фокуса и поведение курсора при загрузки странички в unvisible webbrowser`e?

и если кто может дайте совет для новичка, прошедшего веб парсинг string.split, regex и сделавшего вывод что нужно пользоваться чем та попрофиссиональнее, с чего начать и с чем работать ))
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.03.2014, 20:56
Ответы с готовыми решениями:

Парсинг части исх кода страницы
<td class="proxy-ipport">218.108.168.68:80</td> <td class="proxy-country">China</td> ...

Парсинг html-кода
Всем добрый день! Нужна помощь в написании парсера определенного текста. Вначале указывается список url для парсинга. После чего нужно...

Парсинг HTML кода
Я смог написать прогу которая забирает исходный код этого сайта.Я не могу написать парсер который берет с этой сайта погоду. Прям с главной...

9
Форумчанин.NET
 Аватар для AeroWhite
556 / 427 / 64
Регистрация: 12.02.2013
Сообщений: 834
17.03.2014, 21:03
Если это не определенный сайт, то это невозможно
0
8 / 8 / 1
Регистрация: 07.03.2014
Сообщений: 43
17.03.2014, 21:08  [ТС]
Цитата Сообщение от AeroWhite Посмотреть сообщение
Если это не определенный сайт, то это невозможно
сайт безусловно определенный зачем иначе
0
Форумчанин.NET
 Аватар для AeroWhite
556 / 427 / 64
Регистрация: 12.02.2013
Сообщений: 834
17.03.2014, 21:11
Тогда по подобию Opera. Получаем исходный код страницы, вырываем нужные части с помощью регулярного выражения(однако бытует мнение, что для этого больше подходит HtmlAgilityPack) и потом открываем отредактированную страницу в браузере.
0
8 / 8 / 1
Регистрация: 07.03.2014
Сообщений: 43
17.03.2014, 21:20  [ТС]
Цитата Сообщение от AeroWhite Посмотреть сообщение
Тогда по подобию Opera. Получаем исходный код страницы, вырываем нужные части с помощью регулярного выражения(однако бытует мнение, что для этого больше подходит HtmlAgilityPack) и потом открываем отредактированную страницу в браузере.
agiltypack интересно гляну. по вопросу это та да все вполне ясно. но вырвем мы код каким образом, отобразим его в другом webbrowser`е скрытом, и перетащим нужное в отображаемый. выглядит все это некрасиво - курсор мигает фокус теряется(см. сопутствующий вопрос).. хотелось бы сделать все достаточно приятней на взгляд. возможно есть решение чтото вроде htmlreader, -который построчно загружает данные в webbrowser и благодаря которому мы можем вовремя сделать ненужный объект страницы не отображающим.

Добавлено через 2 минуты
или стоп "получаем код" - какой библиотекой? я просто работают загружая страницы в webbrowser, где нужно еще и обеспечить заполнение формы для логина.
0
Форумчанин.NET
 Аватар для AeroWhite
556 / 427 / 64
Регистрация: 12.02.2013
Сообщений: 834
17.03.2014, 21:23
Скачивание страницы(первое, что нашел)
VB.NET
1
2
3
4
5
6
7
8
9
10
Imports System.Net
Public Class Form1
    WithEvents WC As New WebClient
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        WC.DownloadStringAsync(New Uri("http://google.ru"))
    End Sub
    Private Sub WC_DSA(ByVal sender As Object, ByVal e DownloadStringCompletedEventArgs) Handles WC.DownloadStringCompleted
        TextBox1.Text = e.Result
    End Sub
End Class
0
8 / 8 / 1
Регистрация: 07.03.2014
Сообщений: 43
17.03.2014, 21:25  [ТС]
да вэтом мне все ясно =) надо обеспечить не просто скачивание а ввод данных в форму - имени и пароля, клик на кнопку вход, заметить по java скрипту который отобразит ошибку входа/ или если ошибки не будет то откроется страница откуда уже надо отобразить только таблицу
прошу прощения за неточное изложение вопроса изначально)
0
Форумчанин.NET
 Аватар для AeroWhite
556 / 427 / 64
Регистрация: 12.02.2013
Сообщений: 834
17.03.2014, 21:35
Лучший ответ Сообщение было отмечено crba-tgl как решение

Решение

Если всё делать "по-правильному", то авторизацию надо делать с помощью POST запросов, после чего "вырываем" таблицу и выводим в браузере.
1
8 / 8 / 1
Регистрация: 07.03.2014
Сообщений: 43
17.03.2014, 21:49  [ТС]
Цитата Сообщение от AeroWhite Посмотреть сообщение
Если всё делать "по-правильному", то авторизацию надо делать с помощью POST запросов, после чего "вырываем" таблицу и выводим в браузере.
вот теперь в точку =) Благодарю, на веб просторах уже нашел пару исходников. Копаю в сторону httpsendrequest ) не откажусь от хороших examplов))
0
8 / 8 / 1
Регистрация: 07.03.2014
Сообщений: 43
23.03.2014, 07:41  [ТС]
Собственно еще раз благодарю за get-post запросы) одной фразой открыли новые горизонты познания чудесная вещь обрывающая границу между веб-вин форм. но есть небольшая незадача:
в проекте авторизация проходит через "xmlhttprequest...". первым шагом мы получаем токен, а вторым шагом логинимся. но возникла проблема с очисткой кэша, временно решил её созданием двух экземпляров xmlhttprequest, но сами понимаете короткий код - красивый код =) пробовал убить из памяти xm..st, но что-то не получилось. свойтсво(непомню точно как звучит, типа clearcash) которое видел на некоторых ресурсах отсутствует(возможно из-за используемой библиотеки и версии - mshtml 6). кому не сложно поделитесь кодом очистки кэша=)

Добавлено через 22 минуты
друзья еще вопрос возник. реализуемо ли параллельная работа двух xmlhttprequest ов? т.е. в один момент времени оба регвеста залогинины - разные куки коннекты и тдтп, и на фоне аккуратненько посылают запрос для обновления нужных данных. ограничений по ip вроде не предумиотрено, Но параллельная мыслья - vpn-тунели. кому не трудно поделитесь острой мыслью или ссылкой на полезный материал)

Добавлено через 11 часов 3 минуты
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Imports System
Imports mshtml
Imports System.Text.RegularExpressions
 
Public Class Form1
    Public connection As New XMLHTTPRequest
    Public rgx_tkn As New Regex("token.\:.(?<t>.\d+).", 4)
    Sub sethdrs()
        connection.setRequestHeader("x-requested-with", "XMLHttpRequest")
        connection.setRequestHeader("Cache-Control", "no-cache")
        connection.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8")
        connection.setRequestHeader("Accept", "application/json, text/javascript, */*; q=0.01")
    End Sub
    Private Sub RadButton3_Click(sender As Object, e As EventArgs) Handles RadButton3.Click
        connection.open("POST", "https://example.com/login") : sethdrs()
        connection.send("")
        While connection.readyState <> 4 : My.Application.DoEvents() : End While
        If rgx_tkn.IsMatch(connection.responseText) = False Then : MsgBox("error") : Exit Sub : End If
        connection.open("POST", "https://example.com/login") : sethdrs()
        Dim tkn = rgx_tkn.Match(connection.responseText).Groups("t").Value
        connection.send("source=MENU&login=%2BmyLoginsplusom&password=parol&loginToken=" & tkn)
        While connection.readyState <> 4 : My.Application.DoEvents() : End While
    End Sub
Проблема как всегда оказалась наиглупейшей=) Во втором запросе, токен использовался напрямую из первого уже несуществующего. Отделил его объявлением
VB.NET
1
Dim tkn = rgx_tkn.Match(connection.responseText).Groups("t").Value
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
23.03.2014, 07:41
Помогаю со студенческими работами здесь

Парсинг HTML кода
Добрый день! Есть такая &lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;b_user_menu__item b_drop js_b_drop&quot;&gt;&lt;span class=&quot;text&quot;&gt;&lt;span&gt;Аккаунт&lt;/span&gt;&lt;span...

Парсинг HTML кода
Добрый день! Есть такой &lt;span class=&quot;ui-button-text&quot;&gt; купить за 2820.31 едениц. &lt;span...

PHP Парсинг кода HTML
Привет всем . Помогите пожалуйста с такой проблемкой . Есть HTML страница и с нее надо получить строку вида . НУЖНО ЭТО 1 НУЖНО ЭТО...

Парсинг html кода страницы
Допустим есть некая страница, у которой html &lt;head&gt; &lt;body&gt; &lt;b&gt;ololo&lt;/b&gt; &lt;/body&gt; &lt;/head&gt; мне нужно, поставить if loop...

Парсинг html кода страницы
&lt;strong id=&quot;upoints&quot;&gt;0.00&lt;/strong&gt; Есть кусочек кода, из него нужно вытянуть переменную &quot;0.00&quot; в стринг, а лучше в лэйбл. Как это...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Вывод данных через динамический список в справочнике
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru