Очистите и извлеките данные из https://chenmed.wd1.myworkdayjobs.com/en-US/jencare/, когда они не видны в «Исходном коде» веб-страницы.

Я пытаюсь написать автоматизированный сценарий PHP, чтобы вычистить и извлечь все «названия должностей» (врач первичной помощи — рынок приливной воды, врач первичной помощи — рынок Ричмонд и т. Д.) Из URL https://chenmed.wd1.myworkdayjobs.com/en-US/jencare/

Однако это не кажется простым, поскольку необходимые данные не видны напрямую в исходном коде веб-страницы. Я также пытался проверить «Инструменты разработчика-> Сеть» в разных браузерах, но не смог найти источник данных.

Любая помощь будет высоко оценен.

Спасибо & С уважением!

-1

Решение

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

введите описание изображения здесь

Однако посещение этого URL в браузере дает тот же результат, что и переход к https://chenmed.wd1.myworkdayjobs.com/en-US/jencare/. Расследование дальше, глядя на заголовки запроса

введите описание изображения здесь

один замечает Accept:application/json,application/xml (что означает, что клиент ожидает документ json или xml). Действительно, оказывается, что запрос https://chenmed.wd1.myworkdayjobs.com/en-US/jencare/ с этим дополнительным заголовком возвращает нужные данные:

>>> import urllib.request
>>> req = urllib.request.Request('https://chenmed.wd1.myworkdayjobs.com/en-US/jencare/')
>>> req.add_header('Accept', 'application/json,application/xml')
>>> urllib.request.urlopen(req).read().decode('utf-8').find('Primary Care Physician ') > 0
True

Поэтому в PHP вы, вероятно, хотите сделать следующие шаги:

  1. Запрос ttps: //chenmed.wd1.myworkdayjobs.com/en-US/jencare/ с дополнительным заголовком Accept:application/json,application/xml (см. например Как отправить запрос GET с заголовком из PHP?)
  2. Разобрать возвращенный JSON (например, используя http://php.net/manual/de/function.json-decode.php)
2

Другие решения

Других решений пока нет …