Извлечение определенных полей из потока в форуме
Я работаю над проектом по извлечению данных, для которого мне нужно проанализировать ход обсуждения в ветке форума. Я заинтересован в извлечении информации, такой как время публикации, статистика автора сообщения (количество сообщений, дата присоединения и т. Д.), Текст сообщения и т. Д.
Тем не менее, при использовании стандартных инструментов очистки (таких как Scrapy в Python) мне нужно написать регулярные выражения для обнаружения этих полей в html-источнике страницы. Поскольку эти теги различаются в зависимости от типа форума, становится серьезной проблемой заняться регулярными выражениями для каждого форума. Существует ли стандартный банк таких регулярных выражений, чтобы их можно было использовать в зависимости от типа форума?
Или есть какой-то другой метод для извлечения этих полей со страницы форума.
2 ответа
Я написал несколько файлов конфигурации для некоторых крупных форумов. Надеюсь, вы сможете расшифровать и сделать вывод, как разобрать это.
Для VBulletin:
enclosed_section=tag:table,attributes:id;threadslist
thread=tag:a,attributes:id;REthread_title_
list_next_page=type:next_page,attributes:anchor_text;>
post=tag:div,attributes:id;REpost_message_
thread_next_page=type:next_page,attributes:anchor_text;>
enclosed_section - это div, содержащий ссылки на все темы. Здесь вы найдете ссылку на каждую ветку. list_next_page - это ссылка на следующую страницу со списком тем. post - это div с текстом сообщения. thread_next_page - это ссылка на следующую страницу ветки
Для приглашения:
enclosed_section=tag:table,attributes:id;forum_table
thread=tag:a,attributes:class;topic_title
list_next_page=tag:a,attributes:rel;next,inside_tag_attribute:href
post=tag:div,attributes:class;post entry-content |
thread_next_page=tag:a,attributes:rel;next,inside_tag_attribute:href
post_count_section=tag:td,attributes:class;stats
post_count=tag:li,attributes:,reg_exp:(\d+) Repl
Вам все равно придется создать несколько подходов для каждого форума. Но, как предполагает Хенли, есть также много форумов, которые разделяют их структуру.
Для простоты разбора дат тем форума, dateparser родился из этого специфического требования, и это могло бы быть очень полезным.