Собрал я приличную базу мейл-адресов на сайте sendpulse. И захотел я ее сохранить (на всякий случай, для будущих рассылок, да просто чтобы была). Но вручную копировать с сайта неудобно, а массовой выгрузки нет. У них есть api, и даже готовое решение на языке python 3, но там неполные примеры. В общем, накидал тут код, который выгружает ваши мейл-адреса с адресной книги.
Как выгрузить емейлы с адресной книги Sendpulse
Обновлено 31.03.2022: их библиотека рабочая, но мой код требует улучшения. Либо пробуем сами, либо платим деньги — поправлю.
Для начала Вам нужен api ID и api SECRET. Их можно взять у себя в настройках.
Регистрация в SendPulse.
Раз код на питоне, Вам нужно установить питон (у меня код для python3, если чуть поправить, то и на второй пойдет).
Установите модуль sendpulse (через pip install pysendpulse). Дальше код самой программы.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | from pysendpulse.pysendpulse import PySendPulse if __name__ == "__main__": REST_API_ID = '90bcb1c4d66666454441888c' #id REST_API_SECRET = 'e457ab24332424344333' #secret TOKEN_STORAGE = 'memcached' SPApiProxy = PySendPulse(REST_API_ID, REST_API_SECRET, TOKEN_STORAGE) # Get Mailing Lists list example allmails = [] #создаем список для будущих емейлов try: i=0 #основной цикл k=0 #по сколько мейлов выбирать while i<=9: allemaila = SPApiProxy.get_emails_from_addressbook('896075', limit=0, offset=k) #896075 - айди адресной книги i+=1 #плюс еще одна страница k+=99 #еще 99 мейлов for onemail in allemaila: allmails.append(onemail['email']) #добавляем мейл в список except Exception as err: print(err) #если ошибка - вывести ее. allmails = set(allmails) #сортируем список с мейлами, оставив только уникальные with open(r'C:\Users\bdseo\Desktop\mails_30052018.txt', 'a') as mm: for mailp in allmails: mm.write(mailp + '\n') #сохраняем построчно эмейлы в файл mails_30052018.txt |
Немного пояснений (в коде самой программы есть комментарии). Вначале прописываем свои ключи и подключаемся по апи к sendpulse. Потом идет цикл, чтобы получить мейлы. Дело в том, что sendpulse не отдает больше 100 мейлов за раз (ну или мне просто лень было искать). Поэтому мы отправляем несколько раз запросы, меняя страницы и количество offset.
В моем примере мы проходим 10 раз (10 страниц — while i<=9 при i = 0) по 100 адресов (база на 1000 эмейл-адресов).
Количество адресов прописано в offset, больше 100 задать нельзя. Точнее можно, но будут отображены только последние 100. Поэтому пишем меняющейся число k, которое при каждом обходе увеличивается на 99.
При каждом обходе значение «email» заносится в список, потом этот список сортируется (set(allmails)) и построчно записывается в файл.
Если кому нужно стащить мейлы со своих адресных книг в sendpulse, и не охота делать все выше перечисленное — пишите мне, предлагайте цену и я вам с удовольствием помогу. Обещаю, что мейлы себе не оставлю
добрый день,
у меня выводит ошибку
string indices must be integers
как это исправить?
Пробовать самому или нанять кого-то.
Спросить на тематических форумах.
Я сейчас занят
Страницу контакты нашёл, отписался.
Ничего вроде не получал, если что пишите ;)
Привет, Вебмастер, есть задача, как с вами связаться?