An open API service indexing awesome lists of open source software.

https://github.com/iewher/habr-parser

Automatic mailing of vacancies
https://github.com/iewher/habr-parser

golang mailersend parser

Last synced: about 1 year ago
JSON representation

Automatic mailing of vacancies

Awesome Lists containing this project

README

          

![logo](public/logo.png)

# habr-parser

Автоматическая рассылка сообщений на почту работодателя.

### Обязательно

1. Создать файл config.json и поместить в корень проекта.

Формат файла:

`mail` - Яндекс почта. На данный момент поддерживается рассылка только с Яндекса.

`pass` - пароль для приложения Яндекса.

```json
{
"mail": "your-mail@yandex.ru",
"pass": "your-pass"
}
```

Заголовок и текст письма ввести в консоль.

### Важно

После использования `parser/main.go` - не удалять файл data.json, он в дальнейшем используется в `mail/main.go`

### Запуск скрипта

#### Вариант 1. С помощью консоли.

В корне проекта:

```bash
# Запуск скрипта, собирающего данные.
go run parser/main.go
# Запуск скрипта, отправляющего почту.
# Строго после завершения первой программы.
go run mail/main.go
```

#### Вариант 1. C помощью makefile.

В корне проекта:

```bash
# Запуск скрипта, собирающего данные.
make parse
# Запуск скрипта, отправляющего почту.
# Строго после завершения первой программы.
make mailer
```

### Этап разработки

Раньше код был написан на TypeScript, результаты:

```bash
Создан файл data.json
Парсер успешно завершен
Обработано вакансий: 250
Обработано сайтов: 52
Обработано почтовых аресов: 20
time: 3:30.032 (m:ss.mmm)
```

Код переписан на Golang, результаты:

```bash
Создан файл data.json
Парсер успешно завершен
Обработано вакансий: 250
Обработано сайтов: 52
Обработано почтовых аресов: 21
Время выполнения: 40.0628108s
```

Обрабатывались 10 страниц, результат перехода с TypeScript на Golang - `80.95
%`

На данном этапе скрипт способен:

1. Пробегать по всем страницам career.habr.com
2. Забирать все вакансии.
3. Переходить на каждую вакансию, забирать оттуда ссылку на сайт.
4. Переходить на каждый сайт, забирать доступные почты, для дальнейшего использования.
5. Отправлять сообщение на почту.

### Кратко

Все данные сохраняются после исполнения программы в файле data.json, в формате:

```json
{
"Vacancies": [],
"Sites": [],
"Mail": [],
}
```