CoderCastrov logo
CoderCastrov
Парсер

Парсинг вакансий с использованием Python + Selenium WebDriver

Парсинг вакансий с использованием Python + Selenium WebDriver
просмотров
2 мин чтение
#Парсер
Table Of Content
Scraping Job Postings

Как всегда, давайте сначала определим нашу цель проекта! Мы будем использовать библиотеку Selenium для парсинга информации о вакансиях с сайта для поиска работы в Великобритании - Job Site (https://www.jobsite.co.uk/) и сохранения всего в файл csv. Этот проект состоит из двух частей. Сначала мы автоматизируем процесс поиска (Название вакансии: Software Engineer, Город: Манчестер, Радиус: 30 миль). Затем мы хотим сохранить следующую информацию в одном файле csv:

  • Название вакансии
  • Город
  • Зарплата
  • Тип контракта
  • Описание вакансии (отрывок)
Job Results

Финальный результат должен выглядеть так (выдержка):

storing data in a csv file

Требования к вакансии (название вакансии, город, радиус) можно изменить внутри скрипта. Скрипт самостоятельно займется процессом поиска и будет работать автоматически. В первой части инициализируется веб-драйвер и указываются требования к вакансии (выдержка):

Теперь мы получим результаты поиска вакансий на основе наших требований. Чтобы иметь возможность сохранить необходимые данные, нам нужно создать переменные и получить доступ к соответствующим элементам. Поскольку мы будем работать со списками, нам нужно использовать метод "find_elements", который поставляется вместе с Selenium WebDriver и возвращает коллекцию веб-элементов. Если вы хотите сохранить результаты нескольких страниц, вам нужно работать с пагинацией. В нашем примере мы хотим получить доступ к результатам трех страниц (каждая страница содержит 20 результатов - в сумме мы сохраним 60 вакансий в файле csv). Для работы с пагинацией вы будете выполнять цикл по нескольким страницам. В нашем примере мы указываем количество страниц в функции range.

Затем нам нужно открыть файл csv и указать имя файла (внутри цикла). С помощью метода write мы можем сохранить наши результаты в файле csv:

Кроме того, мы также должны поместить часть с пагинацией внутри цикла for:

pagination

Необходимо найти кнопку "следующая страница", чтобы перейти на следующую страницу и сохранить результаты на следующей странице. Для этого мы сохраняем элемент в переменную и "кликаем по этому элементу":

После того, как вы указали свои критерии поиска, информацию, которую вы хотите извлечь, и сколько страниц вы хотите получить доступ к, вы гибки в отношении количества данных, которые хотите сохранить.


Если вас интересует пошаговое руководство по этому проекту, посмотрите видеоверсию на Youtube:


Ссылки: