Monster.com один из лучших сайтов для соискателей и работодателей с миллионами объявлений о работе в различных отраслях. Это отличное место для соискателей и работодателей, ищущих сотрудников. Скрапинг Monster.com позволяет получить массу данных о работе для аналитики, мониторинга рынка труда или создания собственного инструмента поиска работы.

Monster.com привлекает более 6.7 миллионов человек ежемесячно посещает и размещает тысячи активных объявлений о работе, что делает его золотым дном полезной информации. Тем не менее, его постоянно меняющаяся природа означает, что вам нужна разумная стратегия для парсинга Monster.com. Это руководство покажет вам, как настроить среду Python, создать парсер страниц Monster.com и улучшить его с помощью Crawlbase Crawling API. Этот API помогает справляться со сложными вещами, такими как рендеринг JavaScript и бесконечная прокрутка страниц.

Это руководство предоставит вам знания и инструменты, необходимые для парсинга Monster.com без каких-либо препятствий. Давайте начнем!

Оглавление

  1. Зачем нужен Scrap Monster.com?
  2. Ключевые данные для извлечения из Monster.com
  3. Crawlbase Crawling API для Monster.com Скрапинг
  • Зачем использовать Crawlbase Crawling API?
  • Crawlbase Библиотека Python
  1. Настройка среды Python
  • Установка Python
  • Настройка виртуальной среды
  • Установка необходимых библиотек
  • Выбор правильной IDE
  1. Соскребание объявлений о работе Monster.com
  • Проверка страницы с вакансиями Monster.com
  • Написание скрапера листинга Monster.com
  • Обработка прокрутки страниц
  • Хранение данных в файле JSON
  • Полный пример кода
  1. Скрапинг страниц вакансий Monster.com
  • Проверка страницы вакансий Monster.com
  • Написание скрэпа страницы вакансий Monster.com
  • Хранение данных в файле JSON
  • Полный пример кода
  1. Заключение
  2. Часто задаваемые вопросы (FAQ)

Зачем нужен Scrap Monster.com?

Зачем нужен Scrap Monster.com?

Scraping Monster.com дает вам доступ к огромному объему данных о рынке труда, предлагая ключевые идеи, которые трудно собрать вручную. Автоматизируя сбор списков вакансий, вы можете получить такую ​​информацию, как названия должностей, местоположения, зарплаты, названия компаний и описания должностей. Эти данные являются ключом к пониманию текущих тенденций рынка и принятию решений на основе фактов.

Вы можете быть рекрутером, который хочет просмотреть вакансии конкурентов, аналитиком данных, изучающим тенденции в сфере труда, или соискателем, который хочет отслеживать изменения в различных отраслях. Если так, Monster.com — отличный источник. С миллионами объявлений о вакансиях эта платформа идеально подходит для тех, кому нужны свежие и подробные данные о вакансиях.

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

Ключевые данные для извлечения из Monster.com

Когда вы извлекаете данные из Monster.com, вы должны сосредоточиться на получении ключевой информации, которая дает вам полезные идеи. Вот что вам нужно получить:

Ключевые данные для анализа Monster.com
  1. Должность: Здесь вы найдете информацию о вакансиях, открытых прямо сейчас.
  2. Описание вакаснии: Это краткое описание работы, охватывающее обязанности, необходимые навыки, требуемый опыт работы и любые льготы.
  3. Название компании: Определяет работодателей, предлагающих работу.
  4. О компании: Это дает краткий обзор истории и целей компании.
  5. Веб-сайт компании: Главная веб-страница компании.
  6. Размер компании: Это показывает, насколько велика компания, например, сколько в ней работает людей.
  7. Год основания: Год основания компании.
  8. Локация: показывает, где находится вакансия, помогая фильтровать вакансии по региону.
  9. Информация о зарплате: Если он там есть, это поможет вам узнать, какую оплату ожидать.
  10. Дата публикации вакансии: Это позволяет вам увидеть, насколько новы объявления о вакансиях.
  11. Тип работы: Является ли работа полной, частичной, контрактной и т. д.
  12. Ссылка на приложение: Это перенаправит вас прямо на страницу, где вы сможете подать заявку на работу.
  13. Промышленность: Здесь указывается, к какой области относится работа, например, технологии, здравоохранение или финансы.
  14. Необходимые навыки: Навыки, необходимые для этой роли.
  15. ID задания: Уникальный идентификатор для каждой вакансии, полезный для отслеживания и обновления списков.

Четкое представление о том, что именно следует извлечь, перед запуском парсера Monster.com поможет вам сосредоточиться и обеспечит сбор значимых данных.

Crawlbase Crawling API для Monster.com Скрапинг

При парсинге Monster.com обработка контента, отрендеренного с помощью JavaScript, и навигация по динамическим страницам могут быть сложными с простыми методами парсинга. Вот где Crawlbase Crawling API Пригодится. Этот инструмент помогает справиться с этими сложностями, эффективно отображая JavaScript и управляя пагинацией.

Зачем использовать Crawlbase Crawling API?

Monster.com использует JavaScript для динамической загрузки вакансий и другого важного контента. Старомодные методы скрапинга, которые просто вытягивают статический HTML, не получают такого рода вещи. Crawlbase Crawling API обходит эти ограничения, имитируя настоящий браузер, позволяя загружать и делать доступными все компоненты, отображаемые с помощью JavaScript.

Monster.com использует JavaScript для динамической загрузки списков вакансий и другого контента. Традиционные методы скрапинга, которые извлекают только статический HTML, часто не могут захватить этот контент. Crawlbase Crawling API преодолевает эти ограничения, имитируя реальный браузер, гарантируя, что все элементы, отображаемые с помощью JavaScript, будут загружены и доступны.

Основные характеристики Crawlbase Crawling API

  1. Рендеринг JavaScript: Crawlbase может управлять выполнением JavaScript на странице, позволяя извлекать данные, которые загружаются динамически.
  2. Избегайте блокировки IP-адресов и CAPTCHA: Crawlbase автоматически меняет IP-адреса и обходит CAPTCHA, что позволяет бесперебойно выполнять парсинг Monster.com без блокировок IP-адресов или проблем с CAPTCHA.
  3. Обработка нумерации страниц: API поддерживает все виды методов листания, включая «бесконечную прокрутку», которую можно встретить на досках объявлений о вакансиях, таких как Monster.
  4. Запросить варианты: Настройте свои запросы на парсинг с помощью параметров обработки файлов cookie, настройки пользовательских агентов и многого другого, чтобы сделать ваши усилия по парсингу более надежными.

Crawlbase Библиотека Python

Crawlbase имеет библиотеку Python, которая значительно упрощает веб-скрапинг. Эта библиотека требует токен доступа для аутентификации. Этот токен можно получить, зарегистрировав учетную запись в crawlbase.

Вот пример функции, демонстрирующий, как использовать Crawlbase Crawling API для отправки запросов:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
от база сканирования Импортировать CrawlingAPI

# Инициализация Crawlbase API с вашим токеном доступа
crawling_api = CrawlingAPI({ токен: 'ВАШ_ТОКЕН_БАЗЫ_КРАНА' })

защиту make_crawlbase_request(URL):
ответ = crawling_api.get(url)

if ответ["заголовки"]['статус_ПК'] == '200':
html_content = ответ['тело'].decode('utf-8')
возвращают html_контент
еще:
Распечатать(f"Не удалось загрузить страницу. Crawlbase код статуса: {ответ["заголовки"]['статус_ПК']}")
возвращают Ничто

Внимание: Crawlbase предлагает два типа токенов:
_ Нормальный токен для статических сайтов.
_ Токен JavaScript (JS) для динамических или браузерных запросов.

Для парсинга динамических сайтов, таких как Monster.com, вам понадобится токен JS. Crawlbase предоставляет 1,000 бесплатных запросов, чтобы вы могли начать, и для этого пробного периода не требуется кредитная карта. Для получения более подробной информации ознакомьтесь с Crawlbase Crawling API документации.

В следующем разделе мы покажем вам, как настроить среду Python для этого проекта. Давайте начнем с настройки!

Настройка среды Python

Нам нужно настроить вашу среду Python перед созданием скрапера Monster.com. В этом разделе рассматриваются основные моменты: установка Python и библиотек, настройка виртуальной среды и выбор IDE.

Установка Python

Во-первых, убедитесь, что на вашем компьютере установлен Python. Python — очень гибкий язык, используемый для многих вещей, одной из которых является веб-скрапинг. Вы можете загрузить его с официальный сайт Python. Следуйте инструкциям по установке, соответствующим вашей операционной системе.

Настройка виртуальной среды

Виртуальная среда упрощает управление зависимостями проекта, не влияя на другие проекты Python. Вот как ее настроить:

  1. Создать виртуальную среду: Перейдите в каталог вашего проекта в терминале и запустите:
1
питон -м venv monster_env
  1. Активируйте виртуальную среду:
  • В Windows:

    1
    monster_env\Скрипты\активировать
  • На macOS/Linux:

    1
    источник monster_env/bin/активировать

Установка необходимых библиотек

После активации виртуальной среды вам придется установить несколько библиотек, которые помогут в веб-скрапинге и обработке данных.

  1. Crawlbase: Основная библиотека для отправки запросов с Crawlbase Crawling API.
  2. КрасиваяСуп4: Для анализа документов HTML и XML.
  3. Панды: Для обработки и анализа данных.

Вы можете установить эти библиотеки с помощью pip. Откройте терминал или командную строку и выполните:

1
pip install crawlbase beautifulsoup4 панды

Выбор правильной IDE

Интегрированная среда разработки (IDE) упрощает кодирование, предоставляя полезные функции, такие как подсветка синтаксиса, инструменты отладки и управление проектами. Вот несколько популярных IDE для разработки на Python:

  • PyCharm: Профессиональная IDE для Python с множеством действительно интересных функций.
  • Код Visual Studio (код VS): Хороший легкий редактор общего назначения с хорошей поддержкой Python через плагины.
  • Jupyter Notebook: Хорошо подходит для интерактивного кодирования и анализа данных, особенно когда вам необходимо визуализировать данные.

Выберите IDE, которая соответствует вашим предпочтениям и рабочему процессу, чтобы оптимизировать процесс кодирования.

Теперь, когда у нас установлен Python, загружены библиотеки и настроена среда разработки, мы можем перейти к следующему этапу написания парсера страниц Monster.com.

Соскребание объявлений о работе Monster.com

Давайте начнем с веб-скрапинга списков вакансий Monster.com с помощью Python. Поскольку Monster.com использует динамическую загрузку контента и прокрутку страниц, простых методов скрапинга будет недостаточно. Мы будем использовать CrawlbaseАвтора Crawling API чтобы позаботиться о рендеринге JavaScript и прокрутке страниц, чтобы мы могли извлечь максимум объявлений о вакансиях.

Проверка страницы с вакансиями Monster.com

Первое, что нужно сделать, это изучить HTML-структуру страницы с вакансиями, прежде чем переходить к коду. Знание иерархии позволяет нам определить правильные селекторы CSS для получения информации о вакансии, такой как название вакансии, компания, местоположение и URL вакансии.

  1. Посетите URL: Откройте Monster.com и перейдите на страницу со списком вакансий.
  2. Открытые инструменты разработчика: Щелкните правой кнопкой мыши в любом месте страницы и выберите «Проверить», чтобы открыть инструменты разработчика.Скриншот страницы HTML со списком вакансий Monster.com, проверка
  3. Определите ключевые элементы: Списки вакансий обычно находятся в <article> элементы с атрибутом data-testid="svx_jobCard" внутри <div> с удостоверением личности JobCardGrid. Ключевые элементы включают в себя:
    • Должность: Найдено в пределах <a> тег с атрибутом data-testid="jobTitle".
    • Название компании: Найдено в пределах <span> тег с атрибутом data-testid="company".
    • Расположение: Расположен в пределах <span> тег с атрибутом data-testid="jobDetailLocation".
    • Ссылка на вакансию: Найдено в пределах href атрибут названия должности <a> пометить с data-testid="jobTitle".

Написание скрапера листинга Monster.com

Теперь давайте напишем скрапер для извлечения данных о заданиях с Monster.com. Мы будем использовать Crawlbase Crawling API, что упрощает обработку динамического контента.

Вот код:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
от база сканирования Импортировать CrawlingAPI
от bs4 Импортировать КрасивыйСуп
Импортировать JSON

# Инициализация Crawlbase API с вашим токеном доступа
crawling_api = CrawlingAPI({токен: 'ВАШ_ТОКЕН_БАЗЫ_КРАНА'})

защиту scrape_monster_jobs(URL):
варианты = {
'ajax_wait': 'правда',
'page_wait': '5000' # Дождитесь полной загрузки страницы
}
ответ = crawling_api.get(url, параметры)

if ответ["заголовки"]['статус_ПК'] == '200':
суп = КрасивыйСуп(ответ['тело'], 'html.парсер')
job_cards = суп.выбрать('статья div#JobCardGrid[data-testid="svx_jobCard"]')

все_вакансии = []
для работа in job_cards:
заголовок = работа.выберите_один('a[data-testid="название_должности"]').текст.полоска() if задание.выберите_один('a[data-testid="название_должности"]') еще ''
компания = работа.выберите_один('span[data-testid="компания"]').текст.полоска() if задание.выберите_один('span[data-testid="компания"]') еще ''
местоположение = работа.выберите_один('span[data-testid="jobDetailLocation"]').текст.полоска() if задание.выберите_один('span[data-testid="jobDetailLocation"]') еще ''
ссылка = задание.выберите_один('a[data-testid="название_должности"]')['href'] if задание.выберите_один('a[data-testid="название_должности"]') еще ''

job_listings.append({
'Должность': заголовок,
'Компания': компания,
Расположение: расположение,
«Ссылка на работу»: связь
})

возвращают списки_вакансий
еще:
Распечатать(f"Не удалось получить данные. Код статуса: {ответ["заголовки"]['статус_ПК']}")
возвращают Ничто

Команда options параметр включает в себя такие настройки, как ajax_wait для обработки асинхронной загрузки контента и page_wait подождать 5 секунд перед очисткой, позволяя всем элементам правильно загрузиться. Вы можете прочитать о Crawlbase Crawling API параметры здесь.

Обработка прокрутки страниц

Monster.com использует прокрутку на основе пагинации для динамической загрузки большего количества списков вакансий. Чтобы захватить все списки вакансий, мы будем использовать scroll и scroll_interval параметры предоставлены Crawlbase Crawling API.

  • прокрутка=истина: Включает прокрутку страниц.
  • интервал_прокрутки=60: Устанавливает длительность прокрутки на 60 секунд, что является максимально допустимым временем. Поскольку мы добавили время для прокрутки, нет необходимости явно устанавливать page_wait.

Вот как с этим можно справиться:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
защиту scrape_monster_with_pagination(URL):
варианты = {
'ajax_wait': 'правда',
«прокрутка»: 'правда', # Включает прокрутку страниц
'интервал_прокрутки': '60' # Длительность прокрутки установлена ​​на 60 секунд
}

ответ = crawling_api.get(url, параметры)
if ответ["заголовки"]['статус_ПК'] == '200':
суп = КрасивыйСуп(ответ['тело'], 'html.парсер')
job_cards = суп.выбрать('статья div#JobCardGrid[data-testid="svx_jobCard"]')

все_вакансии = []
для работа in job_cards:
заголовок = работа.выберите_один('a[data-testid="название_должности"]').текст.полоска() if задание.выберите_один('a[data-testid="название_должности"]') еще ''
компания = работа.выберите_один('span[data-testid="компания"]').текст.полоска() if задание.выберите_один('span[data-testid="компания"]') еще ''
местоположение = работа.выберите_один('span[data-testid="jobDetailLocation"]').текст.полоска() if задание.выберите_один('span[data-testid="jobDetailLocation"]') еще ''
ссылка = задание.выберите_один('a[data-testid="название_должности"]')['href'] if задание.выберите_один('a[data-testid="название_должности"]') еще ''

все_вакансии.append({
'Должность': заголовок,
'Компания': компания,
Расположение: расположение,
«Ссылка на работу»: связь
})

возвращают все_вакансии
еще:
Распечатать(f"Не удалось получить данные. Код статуса: {ответ["заголовки"]['статус_ПК']}")
возвращают Ничто

Хранение данных в файле JSON

После того, как вы извлекли данные о задании, вы можете легко сохранить их в файле JSON для будущего использования или анализа:

1
2
3
4
5
6
7
8
защиту сохранить_в_json(данные, имя файла='monster_jobs.json'):
с открытый(имя файла, 'w') as файл:
json.dump(данные, файл, отступ=4)
Распечатать(f"Данные сохранены в {имя файла}")

# Пример использования после скрапинга
if вакансии:
сохранить_в_json(вакансии)

Полный пример кода

Вот полный код, объединяющий все обсуждаемое:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
от база сканирования Импортировать CrawlingAPI
от bs4 Импортировать КрасивыйСуп
Импортировать JSON

# Инициализация Crawlbase API с вашим токеном доступа
crawling_api = CrawlingAPI({токен: 'ВАШ_ТОКЕН_БАЗЫ_КРАНА'})

защиту scrape_monster_with_pagination(URL):
варианты = {
'ajax_wait': 'правда',
«прокрутка»: 'правда', # Включает прокрутку страниц
'интервал_прокрутки': '60' # Длительность прокрутки установлена ​​на 60 секунд
}

ответ = crawling_api.get(url, параметры)
if ответ["заголовки"]['статус_ПК'] == '200':
суп = КрасивыйСуп(ответ['тело'], 'html.парсер')
job_cards = суп.выбрать('статья div#JobCardGrid[data-testid="svx_jobCard"]')

все_вакансии = []
для работа in job_cards:
заголовок = работа.выберите_один('a[data-testid="название_должности"]').текст.полоска() if задание.выберите_один('a[data-testid="название_должности"]') еще ''
компания = работа.выберите_один('span[data-testid="компания"]').текст.полоска() if задание.выберите_один('span[data-testid="компания"]') еще ''
местоположение = работа.выберите_один('span[data-testid="jobDetailLocation"]').текст.полоска() if задание.выберите_один('span[data-testid="jobDetailLocation"]') еще ''
ссылка = задание.выберите_один('a[data-testid="название_должности"]')['href'] if задание.выберите_один('a[data-testid="название_должности"]') еще ''

все_вакансии.append({
'Должность': заголовок,
'Компания': компания,
Расположение: расположение,
«Ссылка на работу»: связь
})

возвращают все_вакансии
еще:
Распечатать(f"Не удалось получить данные. Код статуса: {ответ["заголовки"]['статус_ПК']}")
возвращают Ничто

защиту сохранить_в_json(данные, имя файла='monster_jobs.json'):
с открытый(имя файла, 'w') as файл:
json.dump(данные, файл, отступ=4)
Распечатать(f"Данные сохранены в {имя файла}")

if __имя__ == "__основной__":
базовый_url = 'https://www.monster.com/jobs/search?q=Java+Developers&where=New+York&page=1&so=pslh'
задания = scrape_monster_with_pagination(базовый_url)

if вакансии:
сохранить_в_json(вакансии)

В этом коде показано, как настроить парсер, управлять прокруткой страниц и сохранять данные в структурированном формате JSON, что упрощает использование собранных данных в дальнейшем.

Пример вывода:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
[
{
"Должность": «Разработчик Java (Core Java)»,
"Компания": «Georgia IT Inc.»,
"Место расположения": "Нью-Йорк, Нью-Йорк",
«Ссылка на работу»: "https://www.monster.com/job-openings/java-developer-core-java-new-york-ny--1abe38e2-8183-43d3-a152-ecdf208db3bf?sid=3a00f5d1-d543-4de0-ab00-0f9e9c8079f8&jvo=m.mo.s-svr.1&so=p.s.lh&hidesmr=1"
},
{
"Должность": «Java Backend-разработчик (Java, Spring, микросервисы, Maven)»,
"Компания": «Разнообразная рысь»,
"Место расположения": "Манхэттен, Нью-Йорк",
«Ссылка на работу»: "https://www.monster.com/job-openings/java-backend-developer-java-spring-microservices-maven-manhattan-ny--7228b274-60bb-41d7-b8d9-8a51ff8c8d1c?sid=3a00f5d1-d543-4de0-ab00-0f9e9c8079f8&jvo=m.mo.s-svr.2&so=p.s.lh&hidesmr=1"
},
{
"Должность": «Java Backend-разработчик (Java, Spring, микросервисы, Maven)»,
"Компания": «Разнообразный Линкс»,
"Место расположения": "Манхэттен, Нью-Йорк",
«Ссылка на работу»: "https://www.monster.com/job-openings/java-backend-developer-java-spring-microservices-maven-manhattan-ny--2d652118-1c17-43e3-8cef-7b940a8b0490?sid=3a00f5d1-d543-4de0-ab00-0f9e9c8079f8&jvo=m.mo.s-svr.3&so=p.s.lh&hidesmr=1"
},
{
"Должность": «JAVA FULL STACK DEVELOPER»,
"Компания": «HexaQuEST Global»,
"Место расположения": "Бруклин, Нью-Йорк",
«Ссылка на работу»: "https://www.monster.com/job-openings/java-full-stack-developer-brooklyn-ny--c60fb5f3-5adf-43a7-bfac-03c93853dd4e?sid=3a00f5d1-d543-4de0-ab00-0f9e9c8079f8&jvo=m.mo.s-svr.4&so=p.s.lh&hidesmr=1"
},
.... более
]

Скрапинг страниц вакансий Monster.com

После сбора списков вакансий с Monster.com следующим шагом будет извлечение подробной информации с каждой страницы вакансий. В этом разделе мы расскажем вам, как извлечь конкретные данные, такие как описания вакансий, требования и информацию о компании со страниц вакансий.

Проверка страницы вакансий Monster.com

Чтобы начать скрейпинг страницы задания, вам нужно проверить ее HTML-структуру, чтобы определить элементы, которые содержат нужные вам данные. Вот как это можно сделать:

  1. Посетите страницу вакансий: Нажмите на список вакансий, чтобы открыть подробную страницу.
  2. Открытый разработчик Инструменты: щелкните правой кнопкой мыши на странице и выберите «Проверить», чтобы открыть инструменты разработчика.Скриншот HTML-страницы вакансий Monster.com
  3. Определите ключевые элементы: Ищите элементы, содержащие такую ​​информацию, как:
    • Должность: Найдено в пределах <h2> тег с атрибутом data-testid="jobTitle".
    • Описание вакаснии: Обычно расположен в пределах <div> тег с атрибутом data-testid="svx-description-container-inner".
    • Цифры и факты: Обычно находится в строке таблицы (<tr>) внутри таблицы с атрибутом data-testid="svx-jobview-details-table".
    • О компании: Расположен в пределах <div> тег с классом, содержащим "about-styles__AboutCompanyContainerInner".

Написание скрэпа страницы вакансий Monster.com

Как только вы узнаете структуру, вы сможете создать скребок для извлечения этих деталей. Crawlbase Crawling API поможет справиться с любым динамическим контентом, обеспечивая при этом плавный процесс извлечения данных.

Вот профессиональный пример кода:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
от база сканирования Импортировать CrawlingAPI
от bs4 Импортировать КрасивыйСуп
Импортировать JSON

# Инициализация Crawlbase API с вашим токеном доступа
crawling_api = CrawlingAPI({токен: 'ВАШ_ТОКЕН_БАЗЫ_КРАНА'})

защиту scrape_job_page(URL):
варианты = {
'ajax_wait': 'правда',
'page_wait': '5000' # Дождитесь полной загрузки страницы
}

ответ = crawling_api.get(url, параметры)
if ответ["заголовки"]['статус_ПК'] == '200':
суп = КрасивыйСуп(ответ['тело'].decode('utf-8'), 'html.парсер')

job_title = soup.select_one('h2[data-testid="название_работы"]').текст.полоска() if суп.выберите_один('h2[data-testid="название_работы"]') еще ''
job_description = суп.select_one('div[data-testid="svx-description-container-inner"]').текст.полоска() if суп.выберите_один('div[data-testid="svx-description-container-inner"]') еще ''
numbersAndfacts = [{tr.select_one('td:первый-ребенок').text.strip() : tr.select_one('td:last-child').текст.полоска()} для tr in суп.выбрать('table[data-testid="svx-jobview-details-table"] tr')] if суп.выбрать('table[data-testid="svx-jobview-details-table"] tr') еще []
о_компании = суп.выберите_один('div[class*="about-styles__AboutCompanyContainerInner"]').текст.полоска() if суп.выберите_один('div[class*="about-styles__AboutCompanyContainerInner"]') еще ''

job_details = {
'Должность': должность,
'Описание работы': Описание работы,
«Цифры и факты»: цифры и факты,
«О компании»: о_компании
}

возвращают job_details
еще:
Распечатать(f"Не удалось получить данные. Код статуса: {ответ["заголовки"]['статус_ПК']}")
возвращают Ничто

Хранение данных в файле JSON

После извлечения сведений о задании вы можете сохранить данные в файле JSON для более удобного доступа и анализа:

1
2
3
4
защиту сохранить_детали_задания_в_json(данные, имя файла='job_details.json'):
с открытый(имя файла, 'w') as файл:
json.dump(данные, файл, отступ=4)
Распечатать(f"Данные сохранены в {имя файла}")

Полный пример кода

Вот полный код, который связывает все воедино:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
от база сканирования Импортировать CrawlingAPI
от bs4 Импортировать КрасивыйСуп
Импортировать JSON

# Инициализация Crawlbase API с вашим токеном доступа
crawling_api = CrawlingAPI({токен: 'ВАШ_ТОКЕН_БАЗЫ_КРАНА'})

защиту scrape_job_page(URL):
варианты = {
'ajax_wait': 'правда',
'page_wait': '5000' # Дождитесь полной загрузки страницы
}

ответ = crawling_api.get(url, параметры)
if ответ["заголовки"]['статус_ПК'] == '200':
суп = КрасивыйСуп(ответ['тело'].decode('utf-8'), 'html.парсер')

job_title = soup.select_one('h2[data-testid="название_работы"]').текст.полоска() if суп.выберите_один('h2[data-testid="название_работы"]') еще ''
job_description = суп.select_one('div[data-testid="svx-description-container-inner"]').текст.полоска() if суп.выберите_один('div[data-testid="svx-description-container-inner"]') еще ''
numbersAndfacts = [{tr.select_one('td:первый-ребенок').text.strip() : tr.select_one('td:last-child').текст.полоска()} для tr in суп.выбрать('table[data-testid="svx-jobview-details-table"] tr')] if суп.выбрать('table[data-testid="svx-jobview-details-table"] tr') еще []
о_компании = суп.выберите_один('div[class*="about-styles__AboutCompanyContainerInner"]').текст.полоска() if суп.выберите_один('div[class*="about-styles__AboutCompanyContainerInner"]') еще ''

job_details = {
'Должность': должность,
'Описание работы': Описание работы,
«Цифры и факты»: цифры и факты,
«О компании»: о_компании
}

возвращают job_details
еще:
Распечатать(f"Не удалось получить данные. Код статуса: {ответ["заголовки"]['статус_ПК']}")
возвращают Ничто

защиту сохранить_детали_задания_в_json(данные, имя файла='job_details.json'):
с открытый(имя файла, 'w') as файл:
json.dump(данные, файл, отступ=4)
Распечатать(f"Данные сохранены в {имя файла}")

if __имя__ == "__основной__":
job_url = 'https://www.monster.com/job-openings/d94729d8-929e-4c61-8f26-fd480c31e931'
job_details = scrape_job_page(job_url)

if подробности_работы:
сохранить_детали_задания_в_json(детали_задания)

Приведенный выше код демонстрирует, как проверять страницы вакансий Monster.com, извлекать конкретную информацию о вакансиях и сохранять ее в файле JSON.

Пример вывода:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
{
"Должность": «Сотрудник склада станции доставки»,
"Описание работы": «Обзор вакансии специалиста по складу на станции доставки Amazon. Вы станете частью преданной своему делу команды Amazon на станции доставки — последней остановке перед тем, как мы подарим улыбки клиентам. Наши динамичные и активные сотрудники принимают грузовики с заказами, а затем готовят их к доставке. Вы будете загружать конвейерные ленты, а также транспортировать и размещать грузы для выдачи водителям. Обязанности и зоны ответственности Некоторые из ваших обязанностей могут включать: Прием и подготовку инвентаря к доставке Использование таких технологий, как смартфоны и портативные устройства, для сортировки, сканирования и подготовки заказов Сборка, упаковка, сортировка и транспортировка поддонов и упаковок Вам также необходимо будет уметь: Поднимать до 2019 фунтов Принимать доставку грузовиками Просматривать подсказки на экранах и следовать указаниям для некоторых задач Стоять, ходить, толкать, тянуть, приседать, наклоняться и тянуться во время смен Использовать тележки, тележки, ручные тележки и другое оборудование для перемещения предметов Подниматься и спускаться по лестнице (где применимо) Работать на высоте до 2019 футов на антресоли (где применимо) Каково это на станции доставки Amazon Окрестности. Вам предстоит работать с движущимися машинами — комплектовщиками заказов, стоячими вилочными погрузчиками, башенными тележками и передвижными тележками. Деятельность. Некоторые виды деятельности могут потребовать длительного стояния на одном месте, ходьбы или подъема по лестнице. Температура. Даже при наличии климат-контроля температура в некоторых частях склада может колебаться от 60°F до 00°F; в жаркие дни температура на грузовой площадке или внутри прицепов может превышать 0°F. Уровень шума. Иногда может быть шумно. При необходимости мы предоставим вам средства защиты органов слуха. Дресс-код. Расслабленно, с соблюдением нескольких правил безопасности. В некоторых подразделениях требуется удобная обувь с закрытым носком, а также защитная обувь. В зависимости от должности или местоположения Amazon предоставляет подарочный код Zappos на сумму 110 долларов США на покупку обуви, чтобы вы были готовы к первому дню на работе. Почему вам понравится Amazon У нас есть работа, которая подходит любому образу жизни, современные рабочие места, команды, которые поддерживают и прислушиваются к нашим сотрудникам, а также инициативы и льготы компании, которые помогут вам достичь своих целей. Наши рабочие места находятся неподалеку, с высокой оплатой и предлагают баланс между работой и личной жизнью. Гибкий график. В зависимости от того, где вы работаете, графики могут включать полный рабочий день (40 часов), сокращенный рабочий день (30–36 часов) или неполный рабочий день (20 часов или меньше), и все это с возможностью работы в дополнительные часы, если это необходимо. Узнайте больше о наших графиках. Варианты смен. Работайте тогда, когда это работает для вас. Смены могут включать ночные, ранние утренние, дневные, вечерние и выходные дни. У вас даже может быть четырехдневная рабочая неделя и трехдневные выходные. Узнайте больше о наших сменах. Оплата в любое время. Вы можете мгновенно обналичить до 70% своего заработка сразу после смены (для некоторых групп сотрудников). Узнайте больше о Anytime Pay. Наше рабочее место не похоже ни на одно другое. Современное оборудование. У нас есть современные склады, которые чистые и хорошо организованы. Безопасность. Ваша безопасность важна для нас. Все команды ежедневно делятся советами по безопасности, и мы обеспечиваем наличие защитного снаряжения на объекте. Обратите внимание, что ношение каски и/или защитной обуви во время работы является обязательным для некоторых должностей на определенных объектах. Наша команда поддерживает вас и прислушивается к вам.Культура. Станьте частью инклюзивного рабочего места, которое предлагает разнообразные программы DEI и группы по интересам. Командная атмосфера. Работайте в небольших или больших командах, где вы поддерживаете друг друга, на рабочем месте, которое признано одним из лучших в мире. Новые навыки. В зависимости от должности и местоположения вы научитесь использовать новейшие технологии Amazon, включая портативные устройства и робототехнику. Наша компания поддерживает ваши цели. Преимущества. Многие из наших смен предполагают ряд преимуществ, которые могут включать варианты оплаты и сбережений, медицинское обслуживание, спокойствие для вас и вашей семьи и многое другое. Карьерный рост. Мы взяли на себя обязательство повышать квалификацию наших сотрудников и предлагать различные бесплатные программы обучения и развития, а также у нас есть варианты поддержки обучения для отдельных групп сотрудников. Посмотрите, куда может привести вас ваше путешествие на Amazon. Узнайте больше обо всех причинах выбора Amazon. Полный список преимуществ и критериев, которые будут предложены успешному кандидату, можно найти здесь. Требования: Кандидаты должны быть в возрасте 18 лет и старше и должны понимать и соблюдать все требования к работе и правила техники безопасности на английском языке. С чего начать? Вы можете начать с подачи заявления выше. Если вам нужна помощь с заявлением или вы хотите узнать больше о нашем процессе найма, вы можете найти поддержку здесь: https://hiring.amazon.com/hiring-process# /. Обратите внимание, что если у вас уже есть активное заявление, но вы хотите перейти на другой сайт, вместо того, чтобы подавать заявку на новую должность, вы можете обратиться в службу поддержки по заявлению по адресу https://hiring.amazon.com/contact-us#/ для получения дальнейших шагов. Если у вас есть инвалидность и вам требуется приспособление во время подачи заявления и процесса найма, включая поддержку на мероприятии New Hire, или вам нужно инициировать запрос до начала вашего первого дня, посетите https://hiring.amazon.com/people-with-disabilities#/ или свяжитесь с Группой по размещению кандидатов и заявителей (ACAT). Вы можете связаться с нами по телефону 888-435-9287 с понедельника по пятницу с 6:XNUMX. и 4 вечера PT.Equal EmploymentAmazon стремится к разнообразию и инклюзивности на рабочем месте. Amazon является работодателем, предоставляющим равные возможности, и не допускает дискриминации по признаку расы, национального происхождения, пола, гендерной идентичности, сексуальной ориентации, статуса ветерана, инвалидности, возраста или другого защищенного законом статуса.,
«Цифры и факты»: {
"Место расположения": "Ревер, Массачусетс",
"Тип работы": «Временная, неполный рабочий день»,
"Промышленность": «Транспорт и хранение - Материалы»,
"Зарплата": «18.50 долларов в час»,
«Размер компании»: «10,000 XNUMX сотрудников или более»,
"Год основания": "1994",
"Веб-сайт": "http://Amazon.com/militaryroles"
},
"О компании": «В Amazon мы не ждем, пока появится следующая большая идея. Мы представляем себе форму невозможных вещей, а затем смело воплощаем их в реальность. До сих пор этот образ мышления помог нам достичь невероятных результатов. Давайте создавать новые системы, бросать вызов статус-кво и проектировать мир, в котором мы хотим жить. Мы верим, что работа, которую вы здесь делаете, станет лучшей работой в вашей жизни. \nНа каком бы этапе карьерного роста вы ни находились, у Amazon наверняка есть для вас возможность. Наши научные сотрудники и инженеры формируют будущее понимания естественного языка с помощью Alexa. Сотрудники центров обработки заказов по всему миру отправляют заказы клиентов со складов к порогам. Менеджеры по продуктам устанавливают требования к функциям, стратегии и маркетинговые сообщения для совершенно нового клиентского опыта. И по мере нашего роста мы будем добавлять рабочие места, которые еще не были изобретены. \nЭто всегда первый день \nВ Amazon это всегда \u2019cДень 2019.\u2019d Теперь, что это значит и почему это важно? Это означает, что наш подход остается таким же, как и в первый день Amazon\u2019\u2019, чтобы принимать умные, быстрые решения, оставаться гибкими, изобретать и оставаться сосредоточенными на том, чтобы радовать наших клиентов. В нашем письме акционерам 1 года генеральный директор Amazon Джефф Безос поделился своими мыслями о том, как поддерживать мышление компании первого дня. \u2019cЧтобы оставаться в первом дне, вам нужно терпеливо экспериментировать, принимать неудачи, сажать семена, защищать саженцы и удваивать ставки, когда вы видите восторг клиентов\201d, написал он. \u1cКультура, одержимая клиентами, лучше всего создает условия, в которых все это может произойти\u201d Вы можете прочитать полное письмо здесь \nНаши принципы лидерства\nНаши принципы лидерства помогают нам поддерживать менталитет первого дня. Это не просто вдохновляющее настенное украшение. Амазонцы используйте их каждый день, независимо от того, обсуждают ли они идеи для новых проектов, принимают ли они решение о лучшем решении проблемы клиента или проводят собеседования с кандидатами. Чтобы ознакомиться с нашими принципами лидерства от одержимости клиентами до предвзятости к действию, посетите https://www.amazon.jobs/principles"
}

Скрейп Монстр Рабочие места с Crawlbase

Извлечение объявлений о вакансиях из Monster.com может кардинально изменить ваш подход к сбору данных о занятости. Это руководство провело вас через настройку среды Python, создание скрапера страниц Monster.com, обработку прокрутки на основе пагинации и хранение вашей информации.

Для таких сайтов, как Monster.com, которые используют JavaScript, такие инструменты, как Crawlbase Crawling API оказаться бесценным. Вы можете адаптировать этот метод под свои требования, независимо от того, создаете ли вы персональную систему отслеживания заданий или собираете данные для масштабного проекта. Продолжайте расширять свои знания и помните, что эффективный веб-скрейпинг зависит от выбора подходящих инструментов и методов.

Чтобы расширить свои навыки веб-скрапинга, подумайте о том, чтобы ознакомиться с нашими следующими руководствами по извлечению данных с других ключевых веб-сайтов.

📜 Как скопировать Bloomberg
📜 Как скопировать Википедию
📜 Как взломать Google Finance
📜 Как извлечь данные из Google News
📜 Как очистить Clutch.co

Если у вас есть какие-либо вопросы или пожелания, наш команда поддержки всегда готов помочь вам в вашем путешествии по веб-скрапингу. Счастливого скрапинга!

Часто задаваемые вопросы (FAQ)

В. Могу ли я извлечь списки вакансий с Monster.com, используя базовые библиотеки Python?

Вы можете попробовать скрапинг Monster.com, используя базовые библиотеки Python, такие как requests и BeautifulSoup. Однако сайт использует JavaScript для отображения контента. Это затрудняет использование простых методов скрапинга для качественного захвата списков вакансий. Для обработки JavaScript и изменения контента мы предлагаем использовать Crawlbase Crawling API.

В. Как мне работать с пагинацией при парсинге Monster.com?

Monster.com загружает больше заданий по мере прокрутки страницы. Это называется прокруткой страниц. Чтобы справиться с этим, вы можете использовать  scroll и scroll_interval параметры в Crawlbase Crawling APIЭтот метод гарантирует, что ваш скрапер будет вести себя как настоящий пользователь, прокручивающий страницу, и получит как можно больше объявлений о вакансиях.

Вам нужно проверить условия обслуживания сайта, чтобы быть уверенным в том, что вы можете парсить законно. Также важно парсить ответственно, уважая robots.txt правил и избегания чрезмерных запросов, которые могут перегрузить их серверы.