C#

May 15, 2018 11:20

Как ни странно, самое сложное оказалось самым простым. Несколько строчек - и есть прототип элементарной "качалки файлов", которая загружает веб-страничку в заданной кодировке, приводит символы новой строки к образцу "для Windows" и показывает результат в многострочном текстовом поле. Т.е., грубо говоря, получает сырой текст для дальнейшей работы ( Read more... )

компьютерное

Leave a comment

damncynic May 15 2018, 13:12:10 UTC
Мне кажется, этого многовато :)
Задача, на самом деле, очень простая. Есть сайт, на котором периодически проводится литконкурс: набигают молодые, талантливые авторы, делают чрезмерно дохуя рассказов и пытаются пробиться в финал. Попутно эти авторы, а также всякие попутные и поперечные товарищи читают рассказы и пишут на них небольшие рецензии прямо в специальную форумную ветку. На первом этапе все рассказы делятся на несколько групп. В каждой группе назначается куратор, который просматривает тред и, если видит рецензию на рассказ из курируемой группы, тут же тащит её на свою личную страничку. Там все отзывы сортируются по рассказам так: список рассказов, после наименования рассказа идут рецензии к нему.
Задача парсера проста и понятна: выделить из странички посты участников, из постов участников выделить те, которые содержат отзывы на рассказы из группы (очевидно, отбор по названию рассказа), и разложить их аккуратной стопочкой по рассказам, чтобы куратор мог вместо нудной нетворческой работы выпить пефка за моё пошатнувшееся здоровье. Попутно привести разметку из вида "для HTML" в вид "для форума" (например, заменить на [i], правильно поименовать смайлики и т.п.).

Reply

mike_lambert May 15 2018, 13:14:03 UTC
сопцна, это и есть парсер. ты скармливаешь ему хтмльку и селектишь интересующий тебя контент.

Reply

damncynic May 15 2018, 13:27:21 UTC
Так, подожди.
Я нахожу некий маркер. После него идёт пост, который я выдираю и кладу в список на обработку. Он заканчивается другим маркером, после которого ищется следующий маркер входа или маркер конца страницы.
Выдранные посты обрабатываются хоть регэкспами, хоть String.Replace
Зачем мне тут посторонний парсер?

Reply

mike_lambert May 15 2018, 20:19:52 UTC
чтоб делать один раз нормально. а не костыли и велосипеды.

Reply

satear May 16 2018, 03:11:45 UTC
Я, как человек, постоянно пишущий парсеры, могу заметить, что писатели этих наших html иногда бывают удивительно одарёнными, так что без регэкспов и велосипедов попросту никуда (

Reply

mike_lambert May 16 2018, 08:13:04 UTC
да в общем-то и чуть более чем все парсеры в итоге юзают регэкспы, но работать удобнее уже с объектной моделью.

Reply

damncynic May 16 2018, 04:34:36 UTC
Зачем мне тащить в маленький проект большую библиотеку со сторонним кодом, из которого мне надо чуть более, чем нисколько? Основная-то задача - изучить C# на практике, а не присобачивать все сторонние библиотеки подряд.
Вот SQLite, пожалуй, мне пригодится (хотя всё-таки нет (хотя всё-таки да)). А парсер от третьих лиц - нет.

Reply

mike_lambert May 16 2018, 08:12:30 UTC
Эээээ ... изучить цесрешеточками и заебаться с регэкспами и бойлерплейтом - немножко разные вещи. Но, как говорится - up to you, bro.

Reply


Leave a comment

Up