作业监视器。

lbjobmonitor的Python项目详细描述


lbjobmonitor

imagecodecov.io

招聘网站信息监控工具,监控招聘网站工作岗位更新情况并发送通知。

目的

  • 招聘网站的问题
    • 招聘网站每天都会显示大量的岗位更新,但大多岗位都是常年发布,要从这些岗位里过滤出真正更新的岗位并不容易。
    • 招聘网站的搜索功能还不够完善,做不了高度个性化的定制化搜索条件。
    • 专业论坛的招聘版块,几乎没有搜索功能。
  • 这个工具可以做什么
    • 支持定制招聘网站搜索条件,并对网站提供的标准搜索功能进行少量增强。
    • 对检索到的工作岗位进行过滤,如果该岗位之前已发布过,自动忽略。
    • 可部署在服务器上,设置定时任务方式定时推送岗位更新,支持多种消息推送方式。
    • 新工作岗位通知方式支持:显示到控制台、保存到文件、发送到Slack(强烈推荐Slack)。注:如果想支持微信、邮件的通知,需要自行扩展。
    • 内置了51JOB和V2EX的支持。注:如需要支持其他招聘网站,需要自行进行扩展。

使用范例

  • 初始化项目
$ mkdir jobs
$ cd jobs
$ pip install pipenv --upgrade
$ pipenv --python 3.6
$ pipenv shell
$ pipenv install lbjobmonitor
  • 创建jobs.py。使用python jobs.py执行查询。
  • 可在服务器上使用crontab设置定时任务,定期检查
# jobs.pyimportosfromlbjobmonitor.messageimportCLIMessageBackendfromlbjobmonitor.messageimportFileMessageBackendfromlbjobmonitor.monitorimportQCWYJobMonitorfromlbjobmonitor.storageimportJobMonitorJsonStorageBASE_DIR=os.path.dirname(os.path.abspath(__file__))DATA_DIR=BASE_DIRdefqcwy():params={# 51job的查询参数。51job设置好查询条件后发起查询,通过chrome的调试功能查看请求的具体参数。'saltype':'',# 薪资范围'keyword':'python',# 关键词'postchannel':'0000','keywordtype':'2','jobarea':'080200',# 地区编码'pagesize':'5',# 每页记录数'':''}storage=JobMonitorJsonStorage(base_path=DATA_DIR)# 使用JSON方式将工作列表保存到当前目录message_backend_list=[# 显示的推送方式CLIMessageBackend(),# 显示到控制台FileMessageBackend(fn=os.path.join(DATA_DIR,'jobs.txt'))# 保存到文件]monitor=QCWYJobMonitor(storage=storage,message_backend_list=message_backend_list)# monitor.max_page_idx = 1  # 最多查询页数,设置成1方便调试skip_words=['AI']monitor.monitor_jobs(params=params,skip_words=skip_words)# 执行查询if__name__=="__main__":qcwy()

构架说明

  • JobMonitor # 工作岗位监控类,需要根据网站给出具体实现。
    • job_class
      • Job # 将通过API查询返回的工作信息转换为标准的Job对象
    • storage
      • JobMonitorStorage # 历史工作列表的存储实现类
    • message_backend_list
      • [BaseMessageBackend] # 消息发送的后端实现

代码导航

  • monitor.py
    • JobMonitor # 工作岗位监控基础类
    • QCWYJobMonitor # 51JOB岗位监控实现
    • V2exJobMonitor # V2EX岗位监控实现
  • storage.py
    • JobMonitorStorage # 存储区基础类
    • JobMonitorJsonStorage # 将信息以json方式保存到文件的存储区实现
  • message.py
    • BaseMessageBackend 消息发送处理后端基础类
    • IMMessageBackend IM类消息的后端基础类
    • CLIMessageBackend 将消息发送到控制台
    • FileMessageBackend 将消息保存到文件
    • SlackMessageBackend 将消息发送到Slack
    • TelegramMessageBackend 将消息发送到Telegram
  • models.py
    • Job 岗位信息基础数据类
    • QCWYJob 51JOB的岗位信息解析类
    • V2exJob V2EX的岗位信息解析类

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
Java中的第10个解决方案   Java中泛型的super和extends组合   Java Android OpenGL ES 2.0片段着色器texture2D不工作   在JList elementJava上按下时打开弹出窗口   字典Java数据结构允许对象上的布尔标志和排序?   java我该如何停止为AWS关系数据库服务收费?   java如何检查Google定位准确度是否提高?   java使用Mockito将方法存根在与被测类相同的类中(CUT)   java IntelliJIdea disable inspection:参数的实际值始终为   java CXF+多态POST数据   java命名空间“ads”未绑定   Sun(1999)的“Java编程语言的代码约定”的编码风格过时了吗?   JAVA中的隐式接口、类转换   javafx如何配置Java登录应用程序代码   java如何在滚动窗格中设置选项卡以及如何显示选项卡标题   java中等式和条件运算符的优先级   java Spring WS无法返回JAXB响应   错误响应上的java jaxws处理程序行为   java Hibernate HQL映射查询