|
0 / 0 / 0
Регистрация: 20.02.2010
Сообщений: 17
|
||||||
Подскажите по парсеру html и регулярным выражением24.03.2016, 13:22. Показов 1978. Ответов 20
Метки нет (Все метки)
Ребята, нужна помощь. Впервые пишу парсер и тем более на C#. До этого изучал с++ в институте, а сейчас возникла такая необходимость все это вспомнить. В общем, нашел мануал на ютубе и вот пытаюсь. Задача такова: нужно спарсить список игр из профиля steam. Хранится информация в следующем виде
Есть вот такой код, который не работает. Прошу помощи в указании ошибок, и если не трудно, напишите регулярное выражение для парса нужной мне информации, желательно с пояснениями, чтобы разобраться что к чему
0
|
||||||
| 24.03.2016, 13:22 | |
|
Ответы с готовыми решениями:
20
Захват регулярным выражением нескольких значений в html файле Регулярным выражением очистить ширину и высоту ячейки таблицы HTML
|
|
|
|
| 24.03.2016, 15:09 | |
|
Seregatlt, когда пишешь регулярку прямо в коде, надо учитывать, что это все-таки строковый литерал и кавычки в регулярке надо экранировать, иначе в коде "<div class=" вторая кавычка воспринимается как закрывающая литерал, что приводит к синтаксической ошибке.
Ну и кроме того, для разбора HTML лучше использовать Html Agility Pack - Home, а не регулярки.
0
|
|
|
0 / 0 / 0
Регистрация: 20.02.2010
Сообщений: 17
|
|
| 24.03.2016, 15:59 [ТС] | |
|
diadiavova у меня там было экранировано обратным / перед ковычками, просто когда сюда код вставляешь - оно убирается почему-то
А про Agility Pack почитаю, спасибо
0
|
|
|
|
|
| 24.03.2016, 16:28 | |
|
Seregatlt, а ты пробовал скачивать страницу вебклиентом и смотреть код? Там есть те элементы, которые ты ищешь? Ведь если на странице требуется авторизация, то надо куки отправлять.
0
|
|
|
0 / 0 / 0
Регистрация: 20.02.2010
Сообщений: 17
|
|
| 24.03.2016, 18:03 [ТС] | |
|
diadiavova, скачивал, все элементы на месте, без авторизации страничка тоже открывается и все отображается
0
|
|
|
|
||||||
| 24.03.2016, 18:10 | ||||||
|
Seregatlt, ну вот у меня нет образца страницы, но вот такой код
1
|
||||||
|
0 / 0 / 0
Регистрация: 20.02.2010
Сообщений: 17
|
|
| 24.03.2016, 20:36 [ТС] | |
|
Не секретная, просто там любой профиль может быть. Попробуйте вот с такой ссылкой, получится или все же дело в странице? http://steamcommunity.com/id/n... s/?tab=all
0
|
|
|
|
||
| 24.03.2016, 20:45 | ||
|
1
|
||
|
|
|
| 24.03.2016, 20:49 | |
|
Вот скриншот сделал
1
|
|
|
0 / 0 / 0
Регистрация: 20.02.2010
Сообщений: 17
|
|
| 24.03.2016, 21:06 [ТС] | |
|
Все ясно, странно, а у меня в браузере все нормально открывается и это не мой профиль. Ясно теперь почему не работает. А что вы там говорили про авторизацию и куки? Подскажете как можно тогда это реализовать?
PS: с текстом все работает у меня, проверил ваш метод Спасибо за тест моего кода
0
|
|
|
|
|||||||
| 24.03.2016, 21:36 | |||||||
|
Насчет скриншота - поторопился, у меня там NoScript блокировал один скрипт, который, видимо и формирует список. Если это так, то естественно на странице просто скачанной с сервера этих данных не будет. В этом и разгадка. Если надо получить данные, просто просмотри, что отправляется на сревер и с какого адреса приходят нужные данные.
Добавлено через 1 минуту Добавлено через 28 минут Короче дело обстоит следующим образом. В документе есть ссылка на скрипт со следующим адресом http://steamcommunity-a.akamai... &l=russian. Вот в нем весь код и содержится. Но в немного неудобоваримом виде. В частности вот фрагмент
0
|
|||||||
|
0 / 0 / 0
Регистрация: 20.02.2010
Сообщений: 17
|
|
| 24.03.2016, 21:40 [ТС] | |
|
Пошел читать про WebBrowser
0
|
|
|
|
|||||||
| 24.03.2016, 21:55 | |||||||
|
Ага, я тоже нашел. Все оказалось намного проще. ))
Как сериализовать и десериализовать данные JSON. Регулярка тоже довольно простая
0
|
|||||||
|
0 / 0 / 0
Регистрация: 20.02.2010
Сообщений: 17
|
|
| 24.03.2016, 22:04 [ТС] | |
|
Я тут пока решил JSON не трогать, потому что не понял ничего про сериализацию и прочее. Хотел попробовать webBrowser. Но если страницу загружать в него, происходит ошибка скрипта java и в итоге список игр опять не прогружается. Видимо придется в JSON вникать
0
|
|
|
|
||||||
| 24.03.2016, 22:08 | ||||||
|
Кстати в студии есть инструменты для работы с JSON, файл с таким расширением откроешь, он будет подсвечен, его можно отформатировать. Кроме того, классы можно сформировать тоже автоматически, для этого надо скопировать код JSON и в файл с кодом вставить, но надо использовать меню Правка-Специальная вставка-Вставить JSON как классы. В твоем случае получается вот такая структура
0
|
||||||
|
0 / 0 / 0
Регистрация: 20.02.2010
Сообщений: 17
|
|||||||||||
| 25.03.2016, 08:59 [ТС] | |||||||||||
|
diadiavova, если позволите, снова помучаю вас вопросами.
1) Обязательно ли описывать всю структуру JSON или я могу указать только
2) Я тут нашел один замечательный пример (http://котодомик.рф/json_csharp/), для теста пытаюсь его проделать, но получаю ошибку "Не допустимая лексема = в объявлении класса, структуры или интерфейса"
Добавлено через 9 минут Пункт 2 снимается с вопроса, я понял свой косяк
0
|
|||||||||||
|
0 / 0 / 0
Регистрация: 20.02.2010
Сообщений: 17
|
||||||
| 25.03.2016, 09:22 [ТС] | ||||||
|
Вот такой вариант у меня получился по мануалу, но выдает ошибку (вложение)
0
|
||||||
|
|
|
| 25.03.2016, 10:46 | |
Сообщение было отмечено Seregatlt как решение
Решение
Я тебе пример набросал с твоей страничкой. Думаю - разберешься.
1
|
|
|
0 / 0 / 0
Регистрация: 20.02.2010
Сообщений: 17
|
|
| 25.03.2016, 13:12 [ТС] | |
|
Спасибо, вечером посмотрю, что-то мой 2010 express c# не хочет открывать. Дома новую студию поставлю и посмотрю
0
|
|
|
|
||
| 25.03.2016, 13:16 | ||
|
0
|
||
| 25.03.2016, 13:16 | |
|
Помогаю со студенческими работами здесь
20
с регулярным выражением. Сложности с регулярным выражением Помогите с регулярным выражением Запутался с регулярным выражением ФИО регулярным выражением Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога
Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем.
. . .
|
|
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
|
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
|
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|