关于Indeed.com

Indeed 是一个互联网元搜索引擎,为求职者提供免费访问来自数千个网站的数百万就业机会的服务,所有信息都可以通过一次搜索以职位信息流的形式获取。它包括来自招聘网站、报纸和协会的所有职位列表。在这篇博客文章中,您可以了解如何通过简单的 PHP 代码将 Indeed 职位加载到您的网站上。

集成 Indeed API 的步骤

步骤 1:在 indeed 上创建一个帐户。

步骤 2:复制示例 XML 请求。

步骤 3:创建一个函数以发送 URL 请求。

步骤 4:创建一个函数将 XML 转换为数组。

步骤 5:创建一个页面 “indeed.php”

第6步:创建一个页面 index.php 来显示结果。

步骤 1:在 indeed 上创建一个帐户

要将 Indeed 集成到您的网站,您必须在 indeed.com 上创建一个帐户。登录后,您可以在 indeed.com 的页脚中看到 API 链接。点击它后,您将被重定向到 Indeed 发布者页面,您可以使用您的详细信息登录。在那里,您可以从菜单栏中选择 XML Feed 选项,该选项提供有关 Indeed XML Feed 的所有详细信息。

步骤 2:复制示例 XML 请求

选择 XML Feed 后,您将获得一个示例 XML 请求,其中包含您的发布者 ID,如下所示:“http://api.indeed.com/ads/apisearch?publisher=9xxxxxxxxxxxxxx&q=java&l=austin%2C+tx&sort=&radius=&st=

&jt=&start=&limit=&fromage=&filter=&latlong=1&co=us&chnl=&userip=1.2.3.4&useragent=Mozilla/%2F4.0%28Firefox%29&v=2”。

您还可以轻松理解 URL 中每个变量的含义以及如何使用它。您可以将此 API 复制到您需要显示 Indeed 职位的网页中。

步骤 3:  创建一个 PHP 代码函数以发送 URL 请求。

我们需要创建一个函数来获取来自 indeed 的 XML 供稿。这个函数帮助我们发送 URL 请求。正是通过这个 URL 请求,我们才能获取 XML 供稿。您还可以根据需要添加或更改 URL 中的变量值。在这里,我更改了一些变量,比如查询 q=php,limit=25。默认情况下,它只从 indeed XML 供稿中提取 10 个职位详情。

<?php

function curl_request(){

// 获取 cURL 资源

$curl = curl_init();

// 设置一些选项

curl_setopt_array($curl, array(

// 将响应作为字符串返回,而不是输出到屏幕上

CURLOPT_RETURNTRANSFER => 1,

//发送请求的URL

CURLOPT_URL => ‘http://api.indeed.com/ads/apisearch?publisher=9xxxxxxxxxxxxxxx&q=php&l=austin%2C+tx&sort=&radius=&st=&jt=&start=&limit=100&fromage=&filter=&latlong=1&co=us&chnl=&userip=1.2.3.4&useragent=Mozilla/%2F4.0%28Firefox%29&v=2‘,));

// 发送请求并将响应保存到 $resp

$resp = curl_exec($curl);

//print($resp);

// 关闭请求以释放一些资源

curl_close($curl);

返回 $resp;

}

?>

步骤 4:创建一个将 XML 转换为数组的函数

使用 API URL,我们只获取 XML 数据。这需要转换为数组,我们需要为此创建一个函数。

XML馈送示例

<?xml version="1.0" encoding="UTF-8" ?>
<response version="2">
<query>java</query>
<location>奥斯丁, TX</location>
<dupefilter>true</dupefilter>
<highlight>false</highlight>
<totalresults>547</totalresults>
<start>1</start>
<end>10</end>
<radius>25</radius>
<pageNumber>0</pageNumber>
<results>
<result>
<jobtitle>Java开发人员</jobtitle>
<company>XYZ Corp.</company>
<city>奥斯丁</city>
<state>TX</state>
<country>美国</country>
<formattedLocation>奥斯丁, TX</formattedLocation>
<source>Dice</source>
<date>周一, 2010年8月2日 16:21:00 GMT</date>
<snippet>寻找面向对象的Java开发人员… Java Servlets, HTML, JavaScript,
AJAX, Struts, Struts2, JSF) 是可取的。熟悉Tomcat和Java…</snippet>
<url>http://www.indeed.com/viewjob?jk=12345&indpubnum=8343699265155203</url>
<onmousedown>indeed_clk(this,'0000');</onmousedown>
<latitude>30.27127</latitude>
<longitude>-97.74103</longitude>
<jobkey>12345</jobkey>
<sponsored>false</sponsored>
<expired>false</expired>
<formattedLocationFull>奥斯丁, TX</formattedLocationFull>
<formattedRelativeTime>11小时前</formattedRelativeTime&gt

功能

<?php

function xmlToArray($input, $callback = null, $recurse = false) {

$data = ((!$recurse) && is_string($input))? simplexml_load_string($input, ‘SimpleXMLElement’, LIBXML_NOCDATA): $input;

if ($data instanceof SimpleXMLElement) $data = (array) $data;

if (is_array($data)) foreach ($data as &$item) $item = xmlToArray($item, $callback, true);

return (!is_array($data) && is_callable($callback)) ? call_user_func($callback, $data) : $data;

}

?>

步骤 5:创建一个网页 “indeed.php”

我们创建一个网页,以包含我们上面创建的所有功能。

<?php

function curl_request(){

// 获取 cURL 资源

$curl = curl_init();

// 设置一些选项

curl_setopt_array($curl, array(

// 将响应作为字符串返回,而不是输出到屏幕上

CURLOPT_RETURNTRANSFER => 1,

//发送请求的URL

CURLOPT_URL => ‘http://api.indeed.com/ads/apisearch?publisher=9xxxxxxxxxxxxxxx&q=php&l=austin%2C+tx&sort=&radius=&st=&jt=&start=&limit=25&fromage=&filter=&latlong=1&co=us&chnl=&userip=1.2.3.4&useragent=Mozilla/%2F4.0%28Firefox%29&v=2‘,

));

// 发送请求并将响应保存到 $resp

$resp = curl_exec($curl);

// 关闭请求以释放一些资源

curl_close($curl);

返回 $resp;

}

function xmlToArray($input, $callback = null, $recurse = false) {

$data = ((!$recurse) && is_string($input))? simplexml_load_string($input, ‘SimpleXMLElement’, LIBXML_NOCDATA): $input;

if ($data instanceof SimpleXMLElement) $data = (array) $data;

if (is_array($data)) foreach ($data as &$item) $item = xmlToArray($item, $callback, true);

return (!is_array($data) && is_callable($callback)) ? call_user_func($callback, $data) : $data;

}

?>

<html>

<body>

    <?php

    for($i=0;$i<25;$i++){    // 使用for循环显示工作数量

    $resp=curl_request($i);

    $arrXml = xmlToArray($resp);

    $results=$arrXml[‘results’];

    ?>

    <li>

    <p>

    <strong>职位 :<a href=”<?php echo $results[‘result’][$i][‘url’]; ?>” target=”_blank”><?php echo $results[‘result’][$i][‘jobtitle’]; ?></a></strong>

    </p>

    <p><strong>位置: <?php echo $results[‘result’][$i][‘city’]; ?></strong></p>

    <p><strong>日期 :<?php echo $results[‘result’][$i][‘date’];?></strong></p>

    <p> 描述 :<?php echo $results[‘result’][$i][‘snippet’]; ?></p>

    </li>

    <?php } ?>

    </ol>

    </body>

    </html>

    步骤 6:创建一个页面 index.php,并包含 indeed 链接以加载职位信息。

    这是主页,显示指向 indeed.php 的链接,该链接展示来自 indeed 网站的职位。

    <html>

    <body>

    <p>

    显示来自<a href=”indeed.php”>INDEED</a>的职位

    </p>

    </body>

    </html>

    在创建这两个文件后,请将其保存在本地服务器或主机上的一个文件夹中。下面是加载 Indeed 职位的网页截图。