Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.53/15: Рейтинг темы: голосов - 15, средняя оценка - 4.53
34 / 30 / 3
Регистрация: 16.12.2019
Сообщений: 110

Получить данные с сайта

11.08.2021, 10:06. Показов 3158. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток!

Ребят, кто шарит, как можно дернуть текст с http://www.ufolog.ru/names/order/Иванов и вставить его допустим в RichTextBox, хотя бы одну версию?

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

P.S. Если вдруг страницу заблочит, это история фамилии. Появилась задумка сделать небольшую программку по склонению фамилий, а как бонус хотелось бы добавить интересные факты о фамилии.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
11.08.2021, 10:06
Ответы с готовыми решениями:

Получить данные с сайта
Не получается получить данные с сайта. В ответ на HttpWebRequest приходит <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01...

Получить данные из ответа от сайта
Мне приходит ответ от сайта в таком виде "hash":"e699ff23349e206170857e49405c8aa0","min_price":"13100","offers":} Как мне получить...

Получить данные графика с сайта
Добрый день, подскажите как можно получить данные графика с сайта чтобы это потом можно было использовать? Я сам особо не разбираюсь в...

5
Модератор
Эксперт .NET
 Аватар для Yury Komar
4357 / 3427 / 512
Регистрация: 27.01.2014
Сообщений: 6,258
11.08.2021, 10:57
так что за текст и что за блок нужно спарсить?
0
Лень — мое второе и
 Аватар для Orlangur
3228 / 2416 / 687
Регистрация: 28.11.2014
Сообщений: 3,601
Записей в блоге: 3
11.08.2021, 11:12
Лучший ответ Сообщение было отмечено Zhivoder как решение

Решение

Zhivoder,
VB.NET
1
 Dim Results As New List(Of String) 'тут будем все хранить
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
  Dim WC As New WebClient With {.Proxy = New WebProxy}
        WC.Encoding = System.Text.Encoding.UTF8
        Dim Source As String = WC.DownloadString("http://www.ufolog.ru/names/order/Иванов")
 
        Dim Spl() As String = Split(Source, "<div class=""discussion_block_incom"">")
        For i = 1 To Spl.Count - 1
            Results.Add(ReplaceText(Split(Spl(i), "<span class=""helpful"">")(0)))
        Next
 
        For i = 0 To Results.Count - 1
            RichTextBox1.Text &= "Вариант № " & i + 1 & vbNewLine & Results(i) & vbNewLine & "-------------------" & vbNewLine
        Next
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Function ReplaceText(ByVal Text As String) As String 'убираем лишнее из текста
        Dim Result As String = ""
        Result = Text.Replace("<p>", "")
        Result = Result.Replace("<br>", "")
        Result = Result.Replace("<br />", "")
        Result = Result.Replace("<br/>", "")
        Result = Result.Replace("<noindex>", "")
        Result = Result.Replace("</noindex>", "")
        Result = Result.Replace(vbCrLf, "")
        Result = Result.Replace(Chr(9), "")
       Result = Result.Replace("»", "»") 'тут в первых скобочках &#187 ; (надо убрать пробел перед ;)
        Result = Result.Replace("«", "«") 'тут &#171 ; 
        Return Trim(Result)
    End Function
2
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18282 / 14205 / 5368
Регистрация: 17.03.2014
Сообщений: 28,884
Записей в блоге: 1
12.08.2021, 09:35
Zhivoder, советую использовать библиотеку AngleSharp. Она сильно упрощает процесс и делает код устойчивым к незначительным изменениям в коде страницы.
VB.NET
1
Dim text As String = Await GetText("http://www.ufolog.ru/names/order/%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2")
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
Async Function GetText(address As String) As Task(Of String)
    Dim httpHandler As New HttpClientHandler With {.AutomaticDecompression = DecompressionMethods.All}
    Dim httpClient As New HttpClient(httpHandler)
    Dim html As String = Await httpClient.GetStringAsync(address)
    Dim doc = New HtmlParser().ParseDocument(html)
    Dim node = doc.QuerySelector(".message_list > .messages_entry p")
    node.QuerySelector(".helpful").Remove()
    node.QuerySelector("noindex").Remove()
    Return node.InnerHtml.
        Replace("<br>", Environment.NewLine).
        Trim()
End Function
Цитата Сообщение от Orlangur Посмотреть сообщение
VB.NET
1
2
Result = Result.Replace("»", "»") 'тут в первых скобочках &#187 ; (надо убрать пробел перед ;)
Result = Result.Replace("«", "«") 'тут &#171 ;
Если бы вы использовали AngleSharp, то такой фигней страдать бы не пришлось. И что если в тексте будут еще другие спецсимволы? На дворе 2021 год. Пора забросить парсинг html как текста и использовать специализированные средства.
3
Лень — мое второе и
 Аватар для Orlangur
3228 / 2416 / 687
Регистрация: 28.11.2014
Сообщений: 3,601
Записей в блоге: 3
12.08.2021, 11:05
OwenGlendower,
Цитата Сообщение от OwenGlendower Посмотреть сообщение
Пора забросить парсинг html как текста и использовать специализированные средства
Согласен, но почему бы не делать это там, где оно требуется?
Тут, я уверен, будет небольшая программка, а мы лепим к ней 1.5мб библиотек ради парса нескольких строк.
Плюс, не знаю почему, но код с AngleSharp лично у меня на холодном старте отрабатывает медленней
Вариант с парсингом html как текста

Вариант с AngleSharp

Цитата Сообщение от OwenGlendower Посмотреть сообщение
Если бы вы использовали AngleSharp, то такой фигней страдать бы не пришлось. И что если в тексте будут еще другие спецсимволы?
Тут согласен, не красиво получилось. Думаю лучше сделать так
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
    Function ReplaceText(ByVal Text As String) As String
        Dim Result As String = ""
        Result = Text.Replace("<p>", "")
        Result = Result.Replace(vbCrLf, "")
        Result = Result.Replace("<br>", Environment.NewLine)
        Result = Result.Replace("<br />", Environment.NewLine)
        Result = Result.Replace("<br/>", "")
        Result = Result.Replace("<noindex>", "")
        Result = Result.Replace("</noindex>", "")
        Result = Result.Replace(Chr(9), "")
        Result = System.Net.WebUtility.HtmlDecode(Result)
        Return Trim(Result)
    End Function
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18282 / 14205 / 5368
Регистрация: 17.03.2014
Сообщений: 28,884
Записей в блоге: 1
12.08.2021, 11:58
Цитата Сообщение от Orlangur Посмотреть сообщение
Согласен, но почему бы не делать это там, где оно требуется?
На мой взгляд оно везде требуется потому что код более надежным получается. Исключения имеет смысл делать в случае когда скорость парсинга имеет значение.

Цитата Сообщение от Orlangur Посмотреть сообщение
Плюс, не знаю почему, но код с AngleSharp лично у меня на холодном старте отрабатывает медленней
Что поделаешь. Плата за использование мощного инструмента.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
12.08.2021, 11:58
Помогаю со студенческими работами здесь

Получить данные с сайта через API
Здравствуйте. Решил сделать программу для сбора данных ( цен ) с бирж через API. using System; using...

Как получить нужные мне данные с сайта?
В общем задача такая, с этого сайта https://www.myscore.ru/match/2LzbBZBI/#point-by-point;1 вытащить эти строчки 0:15, 15:15,...

Получить данные с сайта для простого парсера
Всем доброго времени суток. Мне нужно получить курс доллара с сайта (https://finance.rambler.ru/). Взял чисто для примера -...

Получить с сайта данные, доступные только после авторизации
Всем привет. Такая ситуация, Нужно получить с сайта данные, доступные только после авторизации. Нашёл данные через хром, отправляю...

Как подключиться и получить данные с websocket сайта exmo.me?
Здравствуйте. Сайт exmo.me отдает данные об изменениях валют по websocket'у &quot;wss://ws.exmoney.com/connection/websocket&quot;. Это я...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru