|
import re |
|
|
|
def parse_comments(raw_text): |
|
|
|
comment_blocks = raw_text.split("Ответить") |
|
|
|
results = [] |
|
for block in comment_blocks: |
|
|
|
user_match = re.search(r'([\w\d@]+)(.*?)(\d+)?\sнед.', block) |
|
text_match = re.search(r'(.*?)(?=Нравится|Показать перевод|Скрыть ответы)', block) |
|
likes_match = re.search(r'Нравится:\s*(\d+)', block) |
|
|
|
if user_match and text_match: |
|
user = user_match.group(1) |
|
text = text_match.group(1).strip() |
|
likes = int(likes_match.group(1)) if likes_match else 0 |
|
|
|
results.append({"Пользователь": user, "Текст": text, "Лайков": likes}) |
|
|
|
return results |
|
|
|
|
|
raw_text = """alormusicgroupKeep going‼️‼️1 нед.Нравится: 1ОтветитьПоказать переводДействия с комментариемНравитсяСкрыть ответыjfk_4president@alormusicgroup Big facts 🫡🫡🦾1 нед.ОтветитьПоказать переводДействия с комментариемНравится...""" |
|
|
|
|
|
parsed_comments = parse_comments(raw_text) |
|
for comment in parsed_comments: |
|
print(comment) |