在源代码'中找不到来自https://chenmed.wd1.myworkdayjobs.com/en-US/jencare/的数据并从中提取数据。的网页

时间:2017-02-05 02:21:54

标签: php web-scraping web-crawler data-extraction

我正在尝试编写一个自动化的PHP脚本来抓取并提取所有作业标题' (初级保健医生 - 潮水市场,初级保健医生 - 里士满市场等)来自网址https://chenmed.wd1.myworkdayjobs.com/en-US/jencare/

但是,这似乎并不简单,因为所需数据在网页的源代码中不能直接显示。我也尝试过检查'开发人员工具 - >网络'然而,不同浏览器无法找到数据源。

任何帮助都将受到高度赞赏。

谢谢&此致!

1 个答案:

答案 0 :(得分:2)

查看网站提出的请求,会注意到包含您关注的数据的XHR请求:

enter image description here

但是,在浏览器中访问该网址会导致与导航到https://chenmed.wd1.myworkdayjobs.com/en-US/jencare/的结果相同。通过查看请求标题进一步调查

enter image description here

注意到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(请参阅How do I send a GET request with a header from PHP?
  2. 解析返回的JSON(例如,使用http://php.net/manual/de/function.json-decode.php