как получить читаемый текст из сообщения Gmail, если оно содержит html? - PullRequest
1 голос
/ 13 марта 2020

Я использую Gmail API, хочу получить из сообщений весь читаемый человеком текст, а некоторые сообщения имеют формат MIME text / html. Есть ли «правильный» способ сделать это? Я пытался использовать BeautifulSoup4 (я использую Python), но иногда текст отсутствует, потому что я использую фильтрацию тегов, а в противном случае, некоторый текст не читается человеком. Я использовал этот пример и попытался настроить его: ссылка

Может быть, вы знаете, как правильно выполнять синтаксический анализ или использовать какую-либо функцию Gmail API?

Ответы [ 2 ]

0 голосов
/ 19 марта 2020

как вы используете python у нас есть пакет с именем html2text, который будет извлекать текст из html, но после результата вам нужно использовать некоторое базовое регулярное выражение c для обозначения таких вещей, как \ n, \ t, \ r они будут присутствовать в тексте, который мы извлекли.

0 голосов
/ 13 марта 2020

Хм, я не совсем уверен, но на данный момент код, как в ссылке (проверьте вопрос) работает для меня с небольшими изменениями, если он сломается, я напишу здесь

def tag_visible(element):
    if element.parent.name in ['style', 'script', 'head', 'title', 'meta', '[document]',  'yatag']:  # 'a'
        return False
    if isinstance(element, Comment):
        return False
    return True


def text_from_html(body):
    soup = BeautifulSoup(body, 'html.parser')
    texts = soup.findAll(text=True)
    visible_texts = filter(tag_visible, texts)
    return u" ".join(t.strip() for t in visible_texts)
...