Google-таблицы как сборщик почтовых адресов

Google-таблицы как сборщик почтовых адресов

Привет всем! Интересные вопросы иногда мне задают в Телеграм. Вот и в этот раз Александр (который кроме своего имени не указал, к сожалению больше никаких данных), вопрос задал (а вопрос звучал так: Здравствуйте, меня интересует — существует ли возможность через importhtml вытащить эл. адрес любого сайта?), ответ будет читать в виде отдельного поста :). Итак: Google-таблицы как сборщик почтовых адресов

Итак, насколько удалось разобраться в процессе чтения мануалов в Гугл-таблицам — с их помощью можно если не все, то очень многое. Так и в этот раз — через importhtml вытащить электронный адрес любого сайта — можно? 🙂 В старой теперь уже записи я рассматривал вопрос парсинга Title, Description, Keywords сайтов с помощью Google Docs. Но на самом деле легкое модифицирование кода позволяет еще собирать данные из таблиц на необходимом сайте, а уж электронные адреса — тем более!

Давайте рассмотрим пример. Для этого я создал страницу, доступную по ссылке. На ней — кроме списка фейковых электронных адресов, созданных с помощью небольшого кода на Python (код так же доступен для скачивания — используйте где ходите 🙂 ) — имеется так же пример таблицы с некоторыми данными. Попробуем извлечь данные. Для этого — создадим онлайн-таблицу в Google Docs (описывать КАК это делать — я не буду, уверен, вы знаете это сами), а после сделаем следующие колонки:

Ссылка на сайтTitle pageСодержимое таблицыВсе ссылки на страницеТолько почта

В колонке «Ссылка на сайт» вводим ссылку на сайт 🙂 В нашем случае это: http://lavrynenko.com/spisok-poddelnyx-email-adresov-generator/

Теперь стоит вопрос — как получить Title page? Для этого в колонке «Title page» вводим следующую конструкцию:
=IMPORTXML(A2;»//title») — т.е. импортируем данные xml из ячейки А2 (а там у нас ссылка на страницу имеется) и собственно — указываем что импортировать: title

После этого в колонке «Содержимое таблицы» используем конструкцию:
=IMPORTXML(A2;»//td») — т.е. применительно к колонке А2 (та самая, где ссылка на страницу) используем импорт xml-данных, а именно все, что имеется в теге «td». Таким образом мы получаем все данные из таблицы на странице.

Ну и теперь перейдем к ссылкам на странице. Для этого в колонке «Все ссылки на странице» используем конструкцию:
=importxml(A2; «//a[@href]»), где указываем, что нужно импортировать xml-данные из ссылки, которая расположена в поле А2, а именно данные, которые относятся к тегу «a href». После этого в нашей он-лайн таблице отобразятся ВСЕ ссылки, имеющиеся на этой странице. Но все ссылки — это не то, что нам нужно. Нам нужны чистые электронные адреса. Так давайте их получим 🙂 Для этого отфильтруем только адреса с помощью конструкции, которую мы расположим в колонке «Только почта»:
=regexextract(D2; «[a-zA-Z0-9_\.\+-]+@[a-zA-Z0-9-\.]+\.[a-zA-Z0-9-]{2,15}») — что в переводе на человеческий язык можно перевести как: используем регулярное выражение ко всему, что находится в ячейке D2. Что касается регулярного выражения — то оно создано так, что бы получить все электронные адреса (более подробно о регулярных выражениях я пока не рассказывал, ибо использовать регулярки научился, а вот составлять — что бы совсем качественно — пока нет 🙂 Но в ближайшем будущем что-то на эту тему накропаю, да).

Собственно — это все, что можно сказать по теме «Google-таблицы как сборщик почтовых адресов» 🙂

Пример таблицы доступен по ссылке 🙂 Заходите!

Спасибо за внимание. Как всегда — в случае возникновения вопросов пишите на почту, или в Telegram.