Skip to content

Latest commit

 

History

History
55 lines (30 loc) · 4.48 KB

how-to-automate-job-searches-with-python-9a1b04b33036.md

File metadata and controls

55 lines (30 loc) · 4.48 KB

如何用 Python 自动搜索工作

原文:https://pub.towardsai.net/how-to-automate-job-searches-with-python-9a1b04b33036?source=collection_archive---------3-----------------------

使用 Reed API 访问工作列表的快速介绍

Eric ProuzetUnsplash 上拍摄的照片

几个月前,我决定辞职去旅行。接下来是一个夏天的冒险,然后,一瞬间,我发现自己回到了细雨蒙蒙的伦敦,准备考虑重新进入就业市场。自然地,我想知道我是否能收集一些数据来帮助引导我的思考。

进入英国最大的求职网站之一的 Reed.co.uk。与许多其他求职网站不同,Reed 有一个免费且易于访问的 API,任何求职者都可以使用它来扩大搜索范围。在这篇短文中,我们将使用这个 API 来收集感兴趣的工作的数据。

注意:其他求职网站,比如 Indeed 和 LinkedIn,确实提供了开发者应用编程接口,但是这些并没有提供我想要的搜索功能。

免责声明:本文仅用于教育目的。我们不鼓励任何人抓取网站,尤其是那些可能有条款和条件反对此类行为的网站。

先决条件

要在家里复制这个,你只需要 python、互联网接入和 Reed 的 API 密钥(你可以在这里注册)。

收集工作摘要

我对数据工作感兴趣。数据科学,数据工程,机器学习之类的。如果我在浏览 Reed 的网站,我会把这些关键词输入他们的搜索栏;自动化的等效方法是使用 Reed API 的搜索功能。我们可以输入关键字、位置和各种其他过滤器,作为回报,Reed 会向我们发送所有匹配工作的汇总信息。

需要注意的事项:

  1. 在顶部,您会注意到我正在从一个环境变量中获取我的 API 键,这比直接输入实际的 API 键稍微好一点。
  2. Reed API 一次最多只能返回 100 个结果。为了得到所有的结果,你需要在结果的各个页面中循环。这就是为什么我们有一个增量变量job_skip的循环。
  3. 我在这里将文件保存到 S3,因为我使用的是 AWS,但是如果您在本地运行,那么只需用标准的json.dump()命令替换第 29–36 行。
  4. 我对不同关键字的结果感兴趣,但是请注意,这些不同的搜索会产生很多重叠的结果。
  5. 我已经告诉 python 在每次 API 调用后休眠 1 秒钟。这是因为我想避免被速率限制绊倒,Reed API 文档没有说明速率限制是什么(尽管我知道它存在,因为我不小心碰到了它)。所以,最好要谨慎。

每个结果如下所示:

收集工作详细信息

这份摘要提供了很多很酷的信息——职位名称、薪水、申请数量等等。—但是如果您想要完整的工作描述,您将需要使用另一个 API 端点来单独查询每个工作列表。

您可以从上面的示例搜索结果中看到,每个工作列表都有一个jobId。为了查询每个单独的工作列表,我们需要一个在之前的搜索中返回的每个jobId的列表。

你会注意到,除了删除我的jobID变量,我还决定只保留某些头衔的工作。这是因为我的搜索返回了许多似乎与我的兴趣不太相关的工作。另一个选择是在使用搜索 API 时只保留前几页,因为随着我们在搜索结果中进一步寻找,工作不可避免地变得越来越不相关。

现在,我们需要做的就是遍历所有的 jobIDs,获取每个 jobIDs 的详细信息。

就是这样!下面是一个工作列表示例:

放弃

这是一个指出 Reed API 文档非常薄的好时机,它似乎没有包含任何关于这个 API 不能用于什么的信息。开发者 API 没有可用的条款(或者如果有的话,我还没有找到),当然,网站的条款警告不要用于商业用途。在缺乏 API 本身的任何实际条款和条件的情况下,可以安全地假设你可以用它来找工作…但我怀疑 Reed 会希望你出售他们的数据或用它来建立你自己的工作板。

接下来呢?

我现在已经获得了与数据相关的工作的快照,但是我真的希望每天都运行这个代码,以保持我的搜索是最新的。查看我的下一章,看看我如何使用 AWS Batch 来实现它。或者,如果你愿意,跳到最后一章,我在那里分析数据,了解工作薪水、技能、趋势等等。