1. Вступайте в наш Telegram чат: https://t.me/a_parser Нас уже 2600+ и мы растем!
    Скрыть объявление

Улучшение [1.2.773] HTML::EmailExtractor изменение регулярки для парсинга

Тема в разделе "1.2.799", создана пользователем Dima321, 12 фев 2020.

  1. Dima321

    Dima321 A-Parser Pro License
    A-Parser Pro

    Регистрация:
    19 май 2015
    Сообщения:
    4
    Симпатии:
    1
    Добрый день, предлагаю ряд изменений.

    1. Ввести ограничение на длинну локальную части (до что до @) 1-64 символа.
    2. Ввести ограничение на длину доменной части (то, что после @) до 255 символов.
    Эти требования описаны в RFC

    3. Хоть RFC и допускает, но по факту крайне редко встречаются email, где присутстует символ "%". Предлагаю его убрать из регулярки. Собирается из-за него как правило, только хлам.
    Пример:
    22%7d%2c%7b%22id%22%3a%22667090253470645_667090666803937%22%2c%22created_time%22%3a%222017-03-06t20%3a51%3a49.000z%22%2c%22status_type%22%3a%22cover_photo%22%2c%22message%22%3a%22%22%7d%5d%7d%2c%22syncedat%22%3a%222020-02-01t21%3a33%3a44.506z%22%7d%2c%22email%22%3a%[email protected]|http://1018design.no

    4. Добавить в паттерн имейл разделить @ = {at} {a} [a] [at] (a) (at) + в верхнем регистре {A} {AT}..., и разрешить до 3х пробельных символа до\перед\внутри ними. И соотвественно сразу конвертировать его в @ в результатах. Около 1-2% добавляется (тестировал HTML::TextExtractor).
    Примеры:
    info{at}vanessaminique.be|https://vanessaminique.be/contact/
    kris.medart(at)telenet.be|https://veg-deburg.be/contact/
    contact (at) ventsdusud.be|https://ventsdusud.be/contact
    info {at} virginielobet.be|https://virginielobet.be/contact/
    lalunechezviolette (a) gmail.com|https://www.lalunechezviolette.be/contact/
    info[at]landschapsbeleving.be|https://www.landschapsbeleving.be/contact
    [email protected]|https://www.landmetingenartois.be/contact/
    info( at)landschapstuinen.be|https://www.landschapstuinen.be/contact
    pat ( at) ttl-technics.be|https://www.ttl-technics.be/contact/


    5. Добавить ограничение на окончание имейла. Очень редко, но попадаются "email" типо
    [email protected]
    [email protected]
    [email protected]

    В целом регулярка выглядит примерно так:
    (\b[A-Za-z0-9._+-]{1,64}?(@|\s{0,3}([({\[]\s{0,3}(at|a|A|AT)\s{0,3}[\]})])\s{0,3})[A-Za-z0-9.-]{1,255}\.(?!(svg|webp|jpg|png|gif|jpeg|bmp|js|css|html|htm|pjpeg|ico))[A-Za-z]{2,6}\b)
     
    #1 Dima321, 12 фев 2020
    Последнее редактирование: 19 фев 2020
    Support нравится это.
  2. Support

    Support Administrator
    Команда форума A-Parser Enterprise

    Регистрация:
    16 мар 2012
    Сообщения:
    4.545
    Симпатии:
    2.163
    Пункты 1,2,4 реализованы.
    Пункт 3 - оставлен как есть, для большего соответствия стандартам. Если требуется отфильтровывать адреса с %, можно воспользоваться фильтром.
    Пункт 5 - часть расширений уже проверялась в парсере, расширили список.
     
    Dima321 нравится это.

Поделиться этой страницей