【视频教程】开发AI求职助手,一起走上全职远程之路(一)

新系列简介

开个新坑。其实类似的想法我去年就有了,但是一直没有做,除了懒之外,很大的问题就是我不会爬虫。而且在我的认识里,爬虫是一个很依赖后续维护的工作,不符合我写完能用很久的预期。不过我最近在思否看到 亮数据,似乎可以很好的弥补我的不足。于是我决定先把坑挖起来。

本文是系列的第一集,会先介绍我的动机(找到全职远程工作);我设想的做法;介绍亮数据;分析我的代码(踩坑经验);最终初步抓取到 Vuejobs 的远程数据。

创造新工具帮我们找到远程工作

如何找到全职远程工作

全职远程工作有很多好处,比如可以去泰国曼谷耍泼水节,只要安排好时间,工作娱乐两不误。很多朋友问我,怎么找到一份全职远程的工作,我有几个建议分享给大家:

  1. 不断提升自己,扩展技术栈。因为全职远程跟大公司做螺丝钉不同,更倾向于独当一面,所以你的技术栈越全面,能做的工作越多,找到全职远程工作的可能性也越大。
  2. 利用现在的工作机会,给自己打造可靠的个人品牌,形成良好的合作团队,利用好自己的工作副产品,给独立工作或者远程工作做好准备。
  3. 培养自己的自控力。远程工作比较重视结果,你越能控制自己,稳定输出,找到远程的机会也就越多。

除去以上三点,今天要重点分享的,是如何找到尽可能多的远程工作机会;或者,要找到你需要弥补、增强的能力。这个过程,我们要学会利用好各种工具服务和提升自己。如果没有现成的工具,我们就自己开发需要的工具。

关于亮数据(Bright data)

我前几天在思否上看到一个小广告,叫 亮数据。看介绍,我发现它能很好的帮助我补强网络爬虫、内容抓取的能力。尤其是看其功能设计,能解决我前面说的“重维护”问题,我觉得值得一试。

至于做什么,我觉得以前设想的“ 应用创意:AI 求职助手”很合适。只不过,我早先设想时,把简历上传、AI 分析放在第一步;现在我觉得,可以把工作机会获取、AI 分析与提示,放在第一步。即:

  1. 有一个爬虫,帮我四处收集招聘信息,尤其是全职远程
  2. AI 帮我分析 JD,并根据我的基本简历,生成求职信+针对性简历,投递
  3. AI 帮我准备面试,直至入职

编写爬虫脚本

想好就动手。今天的目标是做完第一步,也就是数据抓取,后面再继续做 AI 分析JD 和处理简历。我起初想用他们家的在线 IDE,尝试之后发现不太符合要求,调试起来也比较费力,遂放弃,改用亮数据浏览器(Scraping browser)。

亮数据浏览器是他们部署在全球的服务,我们可以用 puppeteer-core 连接,然后发起请求,抓取目标网页。他们会帮我们解决一般的访问限制,甚至宣称可以通过验证码(我没试)。我觉得这样设计最大的好处是,我们可以在本地简单的开发爬虫脚本,然后直接上线使用,可以与既有的开发习惯轻松融合。

这一步的脚本很简单,我就不详细介绍了,大家可以直接在 我的 GitHub 仓库 里查看;我的视频里也有详细讲解。这里只列举一下我踩过的坑:

  1. 连接亮数据浏览器需要使用 puppeteer-core,不能用 puppeteer,否则会超时,不知道为什么。
  2. 使用前必须付费,或者,请大家用我的 分享链接 完成注册,这样你就有 $10 的试用额度
  3. 因为 puppeteer-core 要使用 WebSocket 连接,之后每步操作也都要走 WS,所以网络就非常重要。我建议大家用云服务器来跑,我用的是博客服务器,美国 DO。
  4. 每次请求 打开一个网页,抓取一些信息。如果需要打开多个网页,就多次连接亮数据浏览器、打开页面

配置亮数据

调试好脚本之后,我们需要把它连接到亮数据浏览器。请大家使用我的 分享链接 完成注册,这样你就有 $10 的额度可以使用。

登录之后,在 代理&爬虫基础设施 里找到“亮数据浏览器”,点击“开始使用”按钮,创建可用实例。

如果参考我的脚本,可以先复制 .env.example.env,然后把用户名密码放在 BRIGHT_DATA_AUTH,把主机放在 BRIGHT_DATA_SBR_WS_ENDPOINT 即可完成配置。如果你自己编写脚本,也请注意让配置生效。

至此,再找一台合适的服务器,就能完成抓取了。可能 Vue jobs 平日的访问量也不大,所以没有什么防护策略,至少我的简单脚本用起来没问题。如果未来遇到难抓的网站,我再尝试进阶用法。

视频教程

小结

时间关系,今天先介绍第一部分,也是我最不熟悉的爬虫部分。后面会集成 AI 分析和记入数据库,那个我就比较熟了。

对远程工作、爬虫开发、全栈开发等有兴趣、有问题的同学,欢迎留言讨论。也请大家多多支持我的文章和视频,给我动力尽快更新下一期。


请大家使用我的分享链接注册 亮数据,这样你我都能获得 $10 的使用额度,我也会尽快更新下一篇。

如果您觉得文章内容对您有用,不妨支持我创作更多有价值的分享:


已发布

分类

来自

评论

欢迎吐槽,共同进步

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据