{"id":18541747,"url":"https://github.com/iewher/habr-parser","last_synced_at":"2025-05-15T04:09:44.640Z","repository":{"id":197606868,"uuid":"698979178","full_name":"iewher/habr-parser","owner":"iewher","description":"Automatic mailing of vacancies","archived":false,"fork":false,"pushed_at":"2024-09-23T15:09:16.000Z","size":414,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-17T08:34:26.944Z","etag":null,"topics":["golang","mailersend","parser"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/iewher.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-10-01T15:10:42.000Z","updated_at":"2024-12-01T22:40:23.000Z","dependencies_parsed_at":"2023-11-11T19:28:15.047Z","dependency_job_id":"49c91d68-949c-41f1-a24e-3355978622c9","html_url":"https://github.com/iewher/habr-parser","commit_stats":null,"previous_names":["iewher/hhparser","iewher/habr-parser"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iewher%2Fhabr-parser","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iewher%2Fhabr-parser/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iewher%2Fhabr-parser/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iewher%2Fhabr-parser/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/iewher","download_url":"https://codeload.github.com/iewher/habr-parser/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254270656,"owners_count":22042860,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["golang","mailersend","parser"],"created_at":"2024-11-06T20:06:05.644Z","updated_at":"2025-05-15T04:09:39.629Z","avatar_url":"https://github.com/iewher.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"![logo](public/logo.png)\n\n# habr-parser\n\nАвтоматическая рассылка сообщений на почту работодателя.\n\n### Обязательно\n\n1. Создать файл config.json и поместить в корень проекта.\n\nФормат файла:\n\n`mail` - Яндекс почта. На данный момент поддерживается рассылка только с Яндекса.\n\n`pass` - пароль для приложения Яндекса.\n\n```json\n{\n  \"mail\": \"your-mail@yandex.ru\",\n  \"pass\": \"your-pass\"\n}\n```\n\nЗаголовок и текст письма ввести в консоль.\n\n### Важно\n\nПосле использования `parser/main.go` - не удалять файл data.json, он в дальнейшем используется в `mail/main.go`\n\n### Запуск скрипта\n\n#### Вариант 1. С помощью консоли.\n\nВ корне проекта:\n\n```bash\n# Запуск скрипта, собирающего данные.\ngo run parser/main.go\n# Запуск скрипта, отправляющего почту.\n# Строго после завершения первой программы.\ngo run mail/main.go\n```\n\n#### Вариант 1. C помощью makefile.\n\nВ корне проекта:\n\n```bash\n# Запуск скрипта, собирающего данные.\nmake parse\n# Запуск скрипта, отправляющего почту.\n# Строго после завершения первой программы.\nmake mailer\n```\n\n### Этап разработки\n\nРаньше код был написан на TypeScript, результаты:\n\n```bash\nСоздан файл data.json\nПарсер успешно завершен\nОбработано вакансий: 250\nОбработано сайтов: 52\nОбработано почтовых аресов: 20\ntime: 3:30.032 (m:ss.mmm)\n```\n\nКод переписан на Golang, результаты:\n\n```bash\nСоздан файл data.json\nПарсер успешно завершен\nОбработано вакансий:  250\nОбработано сайтов:  52\nОбработано почтовых аресов:  21\nВремя выполнения:  40.0628108s\n```\n\nОбрабатывались 10 страниц, результат перехода с TypeScript на Golang - `80.95\n%`\n\nНа данном этапе скрипт способен:\n\n1. Пробегать по всем страницам career.habr.com\n2. Забирать все вакансии.\n3. Переходить на каждую вакансию, забирать оттуда ссылку на сайт.\n4. Переходить на каждый сайт, забирать доступные почты, для дальнейшего использования.\n5. Отправлять сообщение на почту.\n\n### Кратко\n\nВсе данные сохраняются после исполнения программы в файле data.json, в формате:\n\n```json\n{\n    \"Vacancies\": [],\n    \"Sites\": [],\n    \"Mail\": [],\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiewher%2Fhabr-parser","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fiewher%2Fhabr-parser","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiewher%2Fhabr-parser/lists"}