CoderCastrov logo
CoderCastrov
Питон

Исследование рынка труда в Сомали.

Исследование рынка труда в Сомали.
просмотров
3 мин чтение
#Питон

Недавно окончив магистерскую программу и активно ища работу, я был удивлен тем, что вакансий по моей специализации оказалось недостаточно. Мне пришлось пролистать несколько страниц с вакансиями, чтобы найти хотя бы что-то, что можно было бы отнести к области науки о данных. Для дальнейшего исследования я обнаружил, что в общей сфере науки, образования, технологий и математики (STEM) также мало вакансий. Большинство вакансий были связаны с административными ролями.

Будучи специалистом по анализу данных, я решил проанализировать цифры и представить более точную картину отсутствия рабочих мест для людей в области STEM. У меня не было доступа к общедоступным данным, поэтому мне пришлось самостоятельно собирать данные. Существует несколько сайтов с вакансиями, ориентированных на сомалийский рынок труда, но я обнаружил, что QaranJobs имеет наиболее полный список вакансий, хотя и менее структурированный.


Пользовательский парсер

Построение пользовательского парсера на Python довольно просто, и первое, что нужно сделать, это импортировать соответствующие библиотеки, как показано в коде ниже.

### Импорт библиотек
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import Select
from selenium.common.exceptions import NoSuchElementException
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import WebDriverWait
from selenium.common.exceptions import TimeoutException

import requests
from bs4 import BeautifulSoup
from urllib.parse import urljoin

import pandas as pd

import time
from datetime import date, datetime, timedelta

import re

Одна вещь, которую следует отметить на QaranJobs, заключается в том, что объявления о вакансиях отображаются по мере прокрутки, и поэтому я включил код, который прокручивает страницу и нажимает на полосу прокрутки каждый раз, когда она достигает максимальной высоты.

time.sleep(2)  # Позволяет веб-странице открыться в течение 2 секунд
scroll_pause_time = 1 # Вы можете установить свое собственное время паузы. Мой ноутбук немного медленный, поэтому я использую 1 секунду
screen_height = driver.execute_script("return window.screen.height;")   # получаем высоту экрана веб-страницы
i = 1
while True:
    # прокручиваем на одну высоту экрана каждый раз
    driver.execute_script("window.scrollTo(0, {screen_height}*{i});".format(screen_height=screen_height, i=i))  
    i += 1
    time.sleep(scroll_pause_time)
    # обновляем высоту прокрутки каждый раз после прокрутки, так как высота прокрутки может измениться после прокрутки страницы
    scroll_height = driver.execute_script("return document.body.scrollHeight;")  
    # Прерываем цикл, когда высота, до которой мы должны прокрутить, больше общей высоты прокрутки
    if (screen_height) * i > scroll_height:
#         time.sleep(2)
        load_more_btn = WebDriverWait(driver, 20).until(
        EC.element_to_be_clickabl

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

Проведение исследовательского анализа данных

После сохранения очищенных данных в файл CSV, я хотел провести исследовательский анализ для нескольких факторов. Сначала я хотел узнать популярные названия должностей. Как видно, в популярной категории нет должностей в сфере науки, технологий, инженерии и математики (STEM). Большинство должностей связаны с административными задачами, за исключением двух финансовых ролей.

Top 10 Job Titles

Далее я хотел узнать топ-10 компаний, которые заполняли вакансии в тот период времени. Как видно ниже, все топ-10 компаний были международными неправительственными организациями, которые в той или иной мере участвовали в гуманитарных усилиях в Сомали.

TOP 10 Companies

Я также хотел узнать распределение публикаций вакансий по месяцам с апреля 2022 года по май 2023 года и выделить месяцы с наибольшим и наименьшим количеством публикаций. Я создал древовидную карту для этого, потому что она наглядно отображает интересующие меня показатели.

Monthly Job Postings

Наконец, рассмотрим распределение STEM и не-STEM вакансий. Для этого мне пришлось создать список популярных STEM-профессий и включить их в различные наименования должностей, которые были адаптированы для сомалийских вакансий. Результаты показаны на столбчатой диаграмме ниже, и, как видно, только 36 вакансий (0,968%) относятся к STEM-сфере.

STEM vs non-STEM jobs

Заключение

Хотя это только поверхностный анализ, можно отметить, что в Сомали практически отсутствуют рабочие места в области STEM. Следует уделять больше внимания созданию благоприятных условий для выпускников STEM, так как это может оказать каскадное влияние на развитие страны.

Ссылка

Полные исходные файлы проекта, включая CSV-файл, можно найти на [SomaliJOBEDA](http://NajibAbdullahi/JobEDA: Exploring the Somali Job Landscape. (github.com))