Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.87/79: Рейтинг темы: голосов - 79, средняя оценка - 4.87
33 / 3 / 0
Регистрация: 19.10.2013
Сообщений: 53
.NET 4.x

Парсинг текста с сайта

05.01.2014, 21:30. Показов 15890. Ответов 47
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет!
Всех с праздниками!
Ребят, помогите разобраться с парсингом.
Суть вот в чем. Делаю запрос на сайт, получаю ответ и сохраняю его в TextBox.
Далее хотелось бы сперва спарсить что-то простое, к примеру информацию между тегами <title>.
Как это сделать?

Знаю, что многие сейчас налетят и скажут, мол пользуйся регулярками, поэтому сразу скажу, мне далеко еще до регулярок и я до них еще не дорос

И еще такой вопрос, правильно ли я делаю, что сохраняю результат в TextBox? Может, если сохранить во что-то другое, то работать будет легче?

Буду рад любым советам и примерам.
Спасибо!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
05.01.2014, 21:30
Ответы с готовыми решениями:

Парсинг текста с сайта
Здравствуйте, подскажите пожалуйста как парсить текст с сайта на XAML. Мне с сайта просто слово надо которое обновляется постоянно... ...

Парсинг текста с сайта
Как получить текст на основе xNet c сайта между тегами. Без использования webBrowser1 Я читал тему на этом сайте, но она для...

Парсинг текста с запрещенного сайта через прокси
Здравствуйте, мне нужно спарсить текст с сайта на который зайти можно только через TOR browser или анонимайзер. Как реализовать? ...

47
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
06.01.2014, 00:26
Студворк — интернет-сервис помощи студентам
И да, просьба: может, кто-то, кто хорошо в парсинге разбирается, напишет несколько примеров для FAQ на основе этой библиотеки (если она работает как надо). Было бы неплохо, думаю...
0
33 / 3 / 0
Регистрация: 19.10.2013
Сообщений: 53
06.01.2014, 12:42  [ТС]
На данный момент протестировал HAP, море эмоций! Очень крутая вещь.
Если кому интересно, то с помощью HAP, поставленная задача в первом посте выглядит так.
Первым делом делаем запрос на сайт, я это делаю через Request и соответственно Response, далее, после того как мы получили ответ, всё сводится буквально к нескольким строкам:

VB.NET
1
2
3
4
Dim MyEkz As New HtmlAgilityPack.HtmlDocument()
Dim Page As String = RespPage
MyEkz.LoadHtml(Page)
Dim bodyNode As HtmlNode = MyEkz.DocumentNode.SelectSingleNode("//head/title")
Готово! Всё четко и понятно.
Сейчас попробую разобраться с костылем, или как вы там его назвали.

Петррр, Вам отдельное спасибо!

Добавлено через 11 часов 56 минут
Как костыль работает, я толком на 100% так и не понял, зато HtmlAgilityPack как-то лучше мне поддался изучению, буду пользоваться пока им.
Но, если кто-то может добавить или подкинуть еще какие-то идеи по парсингу, то пишите, интересно попробовать все варианты.
0
233 / 10 / 2
Регистрация: 13.01.2013
Сообщений: 52
06.01.2014, 21:46
Подскажите, пожалуйста,где нужно задать кодировку, а то маил.ру выдает Mail.Ru: почта, РїРѕРёСЃРє РІ интернете, новости, РёРіСЂС‹, развлечения
0
 Аватар для Петррр
6721 / 3570 / 900
Регистрация: 28.10.2010
Сообщений: 5,937
06.01.2014, 21:55
tayson72, как решить проблему
0
1652 / 716 / 47
Регистрация: 11.03.2012
Сообщений: 1,855
Записей в блоге: 1
07.01.2014, 00:26
tayson72,
 Комментарий модератора 
Задавать свои вопросы в чужих темах - ЗАПРЕЩЕНО.
0
33 / 3 / 0
Регистрация: 19.10.2013
Сообщений: 53
07.01.2014, 01:14  [ТС]
Столкнулся с очередной проблемой, которую пока не пойму как решить. Не, вернее понимаю, что проблему могли бы решить регулярки, но для меня это еще слишком сложно.

Сегодня всяко разно экспериментируя с парсингом наткнулся на проблему. Допустим, что на сайте есть скрипты, соответственно никаких тегов в скриптах нет. В скрипте кпримеру идет текст:

... ,"Размер":180*180,"Артикул":"Tr-674849545", ...

Как сохранить в переменную текст выделенный красным?
Получается, что мне в RichTextBox нужно найти Артикул":" и после двоеточия с кавычкой :" слямзить всё до следующей кавычки.

Помогите пожалуйста самому мне это не решить.
0
 Аватар для Петррр
6721 / 3570 / 900
Регистрация: 28.10.2010
Сообщений: 5,937
07.01.2014, 07:37
dimOk7, вероятнее всего, это http://ru.wikipedia.org/wiki/CSV. Для парсинга CSV могу предложить CsvHelper. Но так как тут ничего сложного, и скорее текст не многострочный, можно сделать и самому.
1
33 / 3 / 0
Регистрация: 19.10.2013
Сообщений: 53
07.01.2014, 13:05  [ТС]
Цитата Сообщение от Петррр Посмотреть сообщение
dimOk7, вероятнее всего, это http://ru.wikipedia.org/wiki/CSV. Для парсинга CSV могу предложить CsvHelper. Но так как тут ничего сложного, и скорее текст не многострочный, можно сделать и самому.
Спасибо! Сегодня постараюсь разобраться.
0
835 / 643 / 101
Регистрация: 20.08.2013
Сообщений: 2,524
09.01.2014, 15:31
Цитата Сообщение от Петррр Посмотреть сообщение
вероятнее всего, это CSV
Это не csv, а json.

Цитата Сообщение от dimOk7 Посмотреть сообщение
и после двоеточия с кавычкой :" слямзить всё до следующей кавычки.
Возможно, в данном случае да, но вообще-то - нет.
Например, даже если предполагать, что никаких лишних пробелов там нет, то {"Field":"And \"smth\" in quotes"}.

Добавлено через 5 минут
Хм.. Похоже что в json'е нет экранирования кавычек.
Хотя, если это из скрипта, то там не json, а javascript object notation, где экранирование кавычек уже работает, а ключ в кавычки заключаться не обязан. Ну и кавычки могут быть одинарными, а не двойными.
0
33 / 3 / 0
Регистрация: 19.10.2013
Сообщений: 53
11.01.2014, 14:44  [ТС]
Ребята Я снова к вам!
Я решил все же разбираться с регулярками, но не могу понять кое-что.
К примеру, имеем такой кусочек кода HTML:

val="30" /><div id="image-fg63444_00" color="

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

VB.NET
1
Dim regex As New Regex("div id="image-(.*?)"")
но ничего не получается, скорее всего из-за кавычек проблема, нужно наверное как-то экранировать, но не понимаю как. А может я вообще что-то не так понял и делаю вообще всё не правильно
Помогите пожалуйста понять как спарсить текст выделенный красным.
Спасибо!
0
835 / 643 / 101
Регистрация: 20.08.2013
Сообщений: 2,524
11.01.2014, 23:50
Цитата Сообщение от dimOk7 Посмотреть сообщение
из-за кавычек проблема, нужно наверное как-то экранировать, но не понимаю как
Удвоить их...
1
33 / 3 / 0
Регистрация: 19.10.2013
Сообщений: 53
11.01.2014, 23:54  [ТС]
Цитата Сообщение от Qwertiy Посмотреть сообщение
Удвоить их...
Удваивал, но что-то не помогло, компилятор ругается.
А в целом регулярка правильная? Только в кавычках затык?
0
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
12.01.2014, 00:38
Целиком спарсить будет проблематично, думаю. Я попробовал накидать регулярку, но что-то ничего толкового. По части строки, div id= просто, а потом идет широкий разброс знаков...А не проще ли прикинуть, сколько знаков после div id= может быть, и искать совпадения сначала по этому выражению, а дальше фильтровать?
0
33 / 3 / 0
Регистрация: 19.10.2013
Сообщений: 53
29.03.2014, 17:15  [ТС]
А ну, кто тут Бог парсинга? )))
Имеется строка:
class="web-image"><img src="/items?1367932112" /></div><div class

В строке имеются цифры. Цифры на каждой html странице разные.
Нужно спарсить эти цифры.
Как это сделать?
0
835 / 643 / 101
Регистрация: 20.08.2013
Сообщений: 2,524
30.03.2014, 00:43
Цитата Сообщение от dimOk7 Посмотреть сообщение
class="web-image"><img src="/items?1367932112" /></div><div class
VB.NET
1
2
3
4
5
6
7
8
Imports System.Text.RegularExpressions
 
Module All
  Public Sub Main()
    Console.WriteLine(Regex.Match("class=""web-image""><img src=""/items?1367932112"" /></div><div class", "<img src=""/items\?(\d+)"" />").Groups(1).Value)
    Console.ReadKey()
  End Sub
End Module
1
 Аватар для Петррр
6721 / 3570 / 900
Регистрация: 28.10.2010
Сообщений: 5,937
30.03.2014, 00:48
Прошел январь, прошел февраль, заканчивался март. За это время можно было весь интернет распарсить. А вы до сих пор такие простые вещи не научились делать.
2
33 / 3 / 0
Регистрация: 19.10.2013
Сообщений: 53
30.03.2014, 12:36  [ТС]
Цитата Сообщение от Петррр Посмотреть сообщение
Прошел январь, прошел февраль, заканчивался март. За это время можно было весь интернет распарсить. А вы до сих пор такие простые вещи не научились делать.
Петр, да я просто хотел удостовериться, что я стал единственным и неповторимым богом парсинга. В общем хотел посмотреть на предложенные варианты, потом на свои и окончательно убедиться в этом

Ну, а если честно, то я знаю как решить этот вопрос, но хотелось бы посмотреть, как его решат другие ребята.
В частности вот выше предложили вариант с регуляркой. Регулярки, для меня это еще сложно, но интересно, собственно на этом примере попробую хоть немного проникнуться ими. Так же и с другими примерами. Всегда ведь в каждом коде можно увидеть какие-то варианты, которые могут оказаться более удачными. Верно ведь?
0
 Аватар для Петррр
6721 / 3570 / 900
Регистрация: 28.10.2010
Сообщений: 5,937
30.03.2014, 12:51
VB.NET
1
2
3
Dim baseUri = New Uri("http://www.example.com")
Dim fullUri = New Uri(baseUri, "/items?1367932112")
Console.WriteLine(fullUri.Query.TrimStart("?"C))
http://dotnetfiddle.net/S47KHt
2
33 / 3 / 0
Регистрация: 19.10.2013
Сообщений: 53
30.03.2014, 12:59  [ТС]
Цитата Сообщение от Петррр Посмотреть сообщение
Console.WriteLine(fullUri.Query.TrimStar t("?"C))
Ого, отличный вариант. Только не пойму как в этой строке определяется где необходимо закончить обрезку.
0
835 / 643 / 101
Регистрация: 20.08.2013
Сообщений: 2,524
30.03.2014, 14:00
Цитата Сообщение от dimOk7 Посмотреть сообщение
Только не пойму как в этой строке определяется где необходимо закончить обрезку.
Никак. Берётся строка запроса до конца, отрезается только знак вопроса (все, если точнее) слева.
Бесполезное решение, на мой взгляд. Если только кто-то при парсинге готовый uri не даёт.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
30.03.2014, 14:00

Парсинг русского текста с сайта. Неизвестные символы вместо кириллицы
С помощью WebRequest запрашиваю html код страницы, но вместо русских букв там крокозябры. Пробовал кодировать поток в utf8 (У сайта...

Парсинг данных с сайта или страницы сайта
Здравствуйте, добрые люди! Есть задача спарсить данные с страницы соц сети. Или просто со страницы с помощью js. На пхп не предлагать....

Парсинг сайта
Здравствуйте программисты :) Помогите пожалуйста с такой проблемкой: нужно вытащить IP адрес с сайта (http://www.myip.ru/) и занести в...

Парсинг сайта
Добрый день! Не могли бы помочь сделать Парсинг с сайта http://stroymat-rzn.org/stroitelnye-materialy-prajs-list.html Есть код , но он...

Парсинг сайта
Здравствуйте уважаемые программисты, у меня задача распарсить сайт http://lira.battlespace.ru/game.html, помогите а, куда копать? во первых...


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Особенности gif сгенерированных в Си
russiannick 21.10.2026
Рассмотрим генерацию gif файлов, которые в Си имеют свои особенности. Gif представляет собой графический формат популярный в интернете. Посмотрим на палитру. Gif файл сгенерированный в си отличается. . .
FPS контроллер с анимированными Y-Bot и 3D-звуком miniaudio (Box3D, Recast, BehaviorTree.CPP, ozz-animation, ImGui, OpenGL и SDL3)
8Observer8 18.10.2026
Содержание блога | English Version Полное мультиплатформенное руководство по стартовому проекту с FPS-контроллером игрока, анимированными роботами Y-Bot с 4-слойным блендингом, 3D-физикой Box3D,. . .
Локальный http сервер
Argus19 17.10.2026
Локальный http сервер На работе, на двух локальных компьютерах круглосуточно работают программы опроса приборов с записью в книги Excel,которые раз в сутки записываются на сервер компании. Т. к. . . .
Копировать Windows на новый диск на UEFI
damix 17.10.2026
https:/ / uriesk. wordpress. com/ 2016/ 11/ 01/ move-window-10-to-ssd-on-a-uefi-dualboot-system-with-basic-linux-tools/ TL DR Вставляем диск, а старый подключаем через переходник, грузимся с лайва. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru