Як витягти всі email-адреси та посилання з неструктурованого тексту
Щоб витягти всі email-адреси з неструктурованої сторінки чи експорту, використайте шаблон, який відповідає формі адреси, а потім приберіть розділові знаки поруч із нею. Простий шаблон захоплює крапку чи кому в кінці речення і пропускає адреси, записані заплутаним способом. Перш ніж користуватися списком, перевірте його очима.
Витягти емейли і посиланняВитягти емейли зі сторінкиБезкоштовноЧому прості шаблони не працюють
Поширений шаблон — це послідовність символів без пробілів, знак @ і ще одна послідовність символів без пробілів. Його легко написати, але він має два недоліки.
Він захоплює зайве. У реченні "Contact [email protected], or [email protected]." шаблон "\S+@\S+" поверне "[email protected]," з комою і "[email protected]." з крапкою. Це не коректні адреси у вашому списку, і розсилка чи спам-фільтр їх відхилять.
Він пропускає адреси. Адреси, записані як "ana [at] example [dot] com" або "ana at example dot com", не знаходяться взагалі. Так їх пишуть, щоб уникнути збирання адрес, і деякі сторінки роблять це з тієї самої причини. Спочатку замініть слова, а потім виконайте витяг.
Кращий шаблон дозволяє ліворуч лише символи, які може містити адреса, а праворуч — лише домен з літерами. Шаблон "[\w.+-]+@[\w-]+\.[\w.-]+" є розумною відправною точкою. Проте, якщо адреса закінчує речення, він може залишити крапку після домену, бо остання частина домену допускає крапки. Приберіть одну кінцеву крапку з кожного збігу. Інструмент витягу email-адрес і посилань уже відкидає кінцеві розділові знаки, тож цей крок важливий переважно тоді, коли ви пишете власний шаблон.
Ось що цей шаблон повертає для двох прикладів вище:
- "Write to [email protected]." дає "[email protected]." з кінцевою крапкою, яку треба прибрати.
- "Contact [email protected], or [email protected]." дає "[email protected]" і "[email protected].", тож до них застосовується те саме очищення.
Посилання поводяться так само
З URL-адресами така сама проблема. Посилання в кінці речення часто має крапку, кому чи закриваючу дужку. Посилання в дужках, наприклад (see https://example.com/page), може захопити закриваючу дужку, якщо шаблон жадібний. Приберіть кінцеві розділові знаки, а потім перевірте, що кожне посилання відкривається в браузері.
Посилання також можуть бути відносними, як-от /contact, які витяг email-адрес ігноруватиме. Вирішіть, чи потрібні вам лише абсолютні адреси, і вкажіть це, коли запускаєте витяг.
Кроки, що працюють для більшості експортів
- Спочатку замініть заплутані форми за допомогою пошуку і заміни: "[at]" стає @, а "[dot]" — крапкою, але лише там, де видно, що це адреса.
- Вставте текст або HTML-код сторінки в поле Текст або HTML інструмента витягу. Адреси і посилання буде знайдено, а кінцеві розділові знаки відкинуто.
- Залиште увімкненим Видалити дублікати. Він ігнорує регістр в email-адресах, тож [email protected] і [email protected] зараховуються як одна. Для вже наявного списку видалити дублікати рядків виконує ту саму роботу.
- Увімкніть Сортувати А→Я, якщо хочете список за алфавітом.
- Перегляньте фінальний список. Шукайте значення, які не є адресами, наприклад імена файлів зображень, що випадково містять знак @.
Приклад: сторінка містить "Sales: [email protected]", "[email protected]." і "Support: [email protected]". Витяг дає три збіги. Після видалення крапки і дублікатів без урахування регістру лишаються дві адреси: [email protected] і [email protected]. Якщо хочете список за порядком, увімкніть Сортувати А→Я в інструменті витягу або скористайтеся сортуванням рядків.
Тримайте список чистим і законним
Email-адреси у багатьох випадках є персональними даними, а правила щодо спаму діють у багатьох країнах. Збір адреси з публічної сторінки не дає автоматично права на ній писати. Приклади добре відомих правил — GDPR у ЄС і CAN-SPAM Act у США, і вони вимагають різного. Це загальна інформація, а не юридична порада. Перш ніж щось надсилати, перевірте правила, які стосуються вас і людей зі списку, і для масових розсилок зберігайте можливість відписатися.
Особливі випадки
- Текст, що не є адресою. Рядки на кшталт [email protected] можуть збігатися. Видаліть усе, що закінчується розширенням файлу.
- Адреси на зображенні. Спочатку розпізнайте скріншот за допомогою інструмента розпізнавання тексту з картинки, а потім виконайте витяг із результату. Посібник зі скріншотів і фото пояснює, як отримати чисте зчитування.
- Невидимі символи. Невидимий пробіл усередині адреси ламає збіг, і адреса пропускається. Якщо відома адреса не знайдена, видаліть невидимі символи перед витягом. Посібник про невидимі символи пояснює, звідки вони беруться.
- Закодовані адреси. Деякі сторінки приховують адреси в HTML-сутностях, як-от @ для @. Спочатку декодуйте текст сторінки, інакше шаблон не побачить знак @.
- Великі експорти. Для великих файлів виконайте витяг у файл і перевірте кількість збігів з очікуваною кількістю рядків.
Короткі відповіді
Чому мій витяг email-адрес захоплює крапку в кінці?
Крапка дозволена всередині домену, тож шаблон, який приймає крапки, може захопити крапку в кінці речення. Приберіть одну кінцеву крапку з кожного збігу.
Чи може інструмент знайти адреси, записані як "name at example dot com"?
Надійно — ні, без кроку заміни. Спочатку перетворіть слова на символи, але лише там, де текст явно є адресою, щоб звичайні речення не змінювалися.
Чи законно писати на кожну адресу, яку я витягнув із веб-сторінки?
Це залежить від того, де перебувають ви й одержувачі, і від змісту повідомлення. Правила щодо спаму та приватності діють, тож спершу перевірте їх. Це загальна інформація, а не юридична порада.
Переклад з Англійський оригінал за допомогою ШІ.
Коментарі
Коментарів поки немає. Будьте першим.


