Как я создал веб-программу для скрейпинга с помощью Node.js

1656581650 kak ya sozdal veb programmu dlya skrejpinga s pomoshhyu nodejs

Ойетоке Тоби Эммануэль

QHpTcN-hrFnSRSYuIHkXo0mZzurEU98Pr8-w

Благодаря Indreed извлечению задач из Интернета стало проще.

Об Индриде

Indreed – это Rest API для записи задач из Indeed и в Интернете. Он работает на основе моего личного проекта веб-скрейпинга и наложен на API отдыха. Это настоящий API Rest, который можно использовать с любой платформы, используя любой язык программирования. Он поддерживает COR, поэтому вы можете использовать его с внешних веб-страниц. Indreed поддерживает широкий спектр фильтров, которые можно использовать для точной настройки результатов работы. С помощью Indreed можно получить почти всю необходимую информацию о работе в Интернете. Документы можно найти здесь.

Создание веб-приложения

В этом учебнике мы будем использовать Node.js для создания веб-приложений для списка вакансий. Стек технологий, который мы собираемся использовать, включает в себя:

  1. Axios для выполнения вызовов Rest API
  2. Экспресс для сервера
  3. Руль для языка шаблонов.
  4. И да, мы будем использовать MDL для нашего UI/UX.

Давайте начнем…

Откройте свой терминал:

mkdir jobby && cd jobbynpm init -ynpm install --save express axios express-handlebarsnpm install --save-dev nodemon

Сделав это, откройте созданный package.json файл в желаемом текстовом редакторе, и вы увидите что-то вроде ниже:

vyWVz4qyXW82C7uUXolQBw4BD94zgOUH4AEJ
package.json

Я уже добавил описание, указал свое главное app.jsи я добавил ключевые слова, имя, а также nodemon для перезагрузки в реальном времени.

Теперь давайте настроим базовый экспресс-сервер и механизм шаблонов руля. Создайте app.js файл в каталоге вашего проекта:

Убедитесь, что у вас такая же структура папок, как показано ниже:

L1sXRZDJ3ES7ddMcGKYkirl-GfoL40yxtPZl
настройка папки (игнорируйте data.json)

Теперь нам нужно создать a index.hbsфайл в папке просмотров, где будет храниться наш HTML:

Для запуска приложения вы можете использовать node app.js. Если вы хотите использовать nodemon, вы можете сделать это nodemon app.js.

sxYPGxFnnY5V720GFFx1dvTYW3s7eQ9CE1jW

Теперь можно открывать в вашем браузере.

rGlzAry0qSrBYCR-nuwK-UqQvu6CmrC6vMPO

Ура!

Теперь давайте попытаемся получить задания с API Indreed с помощью axios, а затем с помощью руля для его форматирования.

Откройте app.js и обновить app.get("/") :

Затем замените {{ body }} с приведенным ниже:

<div class="mdl-grid portfolio-max-width">{{# each jobs }}   <div class="mdl-cell mdl-card mdl-shadow--4dp portfolio-card">   <div class="mdl-card__media"></div>   <div class="mdl-card__title">   <h2 class="mdl-card__title-text">{{ this.title }}</h2>   </div>   <div class="mdl-card__supporting-text">   {{ this.summary }}   </div>   <div class="mdl-card__actions mdl-card--border">   <a class="mdl-button mdl-button--colored mdl-js-button mdl-js-   ripple-effect mdl-button--accent" href=" this.url }}">Read   more</a>   </div>   </div>{{/each}}</div>

Примечание: Для этого мы только показываем title , summary и url . Вы можете добавить другую информацию, поэтому проверьте ее.

Обновите его, и вы будете поражены:

CSlgoD2ACZxBQ7NyRBX3j3rBBdfvvbH1m3iV

Поздравляем, вы только что создали простую веб-приложение для создания списка вакансий.

Давайте разберем то, что мы только что построили:

  • Мы послали а GET запрос к API Indreed с помощью axios
  • это получило списки вакансий веб-разработчика
  • и вернул данные JSON, которые мы передали на руль, чтобы помочь нам их просмотреть
  • отображаются результаты.

Наше приложение только показывается web developer рабочие места. Что, если бы мы хотели видеть другие виды работы? Было бы глупо изменить это со стороны кода. Итак, что мы собираемся сделать дальше, это создать простую форму для фильтрации результатов работы.

Давайте создадим а /search конечная точка:

Далее создайте search.hbs:

Но давайте добавим немного CSS:

Затем обновите шаблон домашней страницы следующим образом:

Теперь, когда мы закончили с шаблонами, давайте почистим наши app.js:

Вот и все, мы кончили.

9HnWhWMAbacRj5yNJM2ExGMZezzGrINooqts
mPjZEjwoJcOZ-Ah5zwfsFzBEZEK72KAy2VVG

Некоторые предложения

  1. Местонахождение: приложение, которое определяет местонахождение пользователя, — это то, что вы можете добавить, чтобы сделать Indreed умнее. Я предлагаю вам использовать Express-IP, экспресс-промежуточное программное обеспечение для получения информации об IP. Вы можете использовать его, как показано ниже:

req.ipInfo может вернуть null, если вы находитесь на локальном хосте (поэтому есть оператор if).

2. Расширенные результаты поиска: Indreed имеет различные фильтры, которые можно использовать для фильтрации результатов работы, и мы использовали только их. q и l . Таким образом, вы можете добавить форму, которая использует некоторые из доступных фильтров:

3. Аутентификация: Вы можете добавить систему аутентификации, чтобы персонализировать результаты поиска пользователя. Благодаря этому пользователи могут выбирать категории вакансии, которые они хотели бы видеть, а вы будете продолжать предлагать соответствующие вакансии, когда они войдут.

4. Кэш: Если вы хотите персонализировать результаты поиска пользователя без прохождения аутентификации, вы можете выбрать Кэш.

Краткое примечание

Я являюсь создателем API Indreed, и сейчас он находится на стадии альфа-версии. Как видите, он размещен на Heroku и все еще нуждается в значительном улучшении с точки зрения структуры, производительности, скорости и хостинга. Чтобы сделать это вперед, вы можете внести свой вклад в развитие, связавшись со мной (oyetoketoby80[at]gmail.com) или вы можете также помочь через мою страницу patreon. http://patreon.com/oyetoketoby

Вот и все для этой статьи. Вы можете получить код отсюда и просмотреть демонстрацию в реальном времени: http://jobbyio.herokuapp.com.

Если вам понравилась эта статья, пожалуйста, похлопайте и поделитесь с другими.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *