笔者之前使用RPA工具-来也Uibot给公司人事开发了一款岗位薪酬爬虫程序,感觉这种工具还是是给不太懂开发的大众小白用的,不太灵活,也没有强大的技术栈做支撑,后来发现了谷歌的puppeteer技术,非常喜欢,感觉这才是程序员需要的开发工具,但puppeteer 只支持NodeJs,对于C++、Java、Python技术栈的我来说,感觉还是不够方便,再后来又遇到了PlayWright:Puppeteer团队跳槽到微软开发的同类技术,但除了Js还支持Java,Python和C#等多种语言。不错!就是你了,于是笔者拿PlayWright重写了之前那款爬虫,实现思路也很简单,大致如下:

1)依次创建PlayWright、Browser、BrowserContext等对象,

String keyword = "Java工程师";List<String> pwArgs = new ArrayList<>();pwArgs.add("--start-maximized");try (Playwright playwright = Playwright.create()) {Browser browser = playwright.chromium().launch(new           BrowserType.LaunchOptions().setArgs(pwArgs).setHeadless(false));BrowserContext context = browser.newContext(new Browser.NewContextOptions().setViewportSize(null));
。。。

2)创建一个页面并跳转到boss直聘页面

Page page = context.newPage();page.addInitScript("Object.defineProperties(navigator, {webdriver:{get:()=>undefined}});");String url = "https://www.zhipin.com/";System.out.println(url);page.navigate(url);

3)使用PlayWright提供的API,在搜索栏中输入岗位关键词,点击搜索按钮,并拦截“https://www.zhipin.com/wapi/zpgeek/search/joblist.json”接口获取相关岗位信息

page.locator("input[name='query']").fill(keyword);Response rs = page.waitForResponse(r -> r.url().contains("https://www.zhipin.com/wapi/zpgeek/search/joblist.json") && r.ok(),() -> page.locator("text='搜索'").click());

4)解析拦截返回的岗位信息,并存储到Excel文件中

SONObject json = new JSONObject(rs.text());JSONObject zpData = (JSONObject) json.get("zpData");JSONArray jobList = zpData.getJSONArray("jobList");System.out.println(jobList);saveFile(jobList);

测试运行,一切OK。一个简单小巧且精致的爬虫程序就此完成。

使用PlayWright技术实现Boss直聘爬虫相关推荐

  1. “鼓上蚤”带你实战之Boss直聘爬虫

    1 . 前言 2 . 数据需求 3 . 分析页面 1前言 目前来说,在互联网招聘界有一个"蓬勃生长"的"招聘小巨头",也就是我们这期被爬的第一"男猪脚 ...

  2. Boss直聘网爬虫 基于requests 请求的源码

    import requests from bs4 import BeautifulSoup import re import time import random# from zhi_lian_zha ...

  3. rn 实现上下滑动选择列表_用大前端技术实现的一款仿Boss直聘app(已开源)

    鱼哥从去年8月我参加GDD(谷歌开发者大会)后,Flutter在一年中,版本迭代频繁,很多没有的功能都逐渐有了,很多从事移动端开发的,目前面临巨大冲击,因为大前端不是喊口号,而是确实能有巨大优势.之前 ...

  4. 爬虫项目——Scrapy爬取Boss直聘

    Scrapy添加代理爬取boss直聘,并存储到mongodb 最终爬取截图 项目创建 items Spider Middleware添加ip代理 Pipeline添加mongodb存储 最终爬取截图 ...

  5. python爬虫学习(一)爬取boss直聘一页数据

    第一次爬数据遇到了很多坎儿,游走在各大大佬们的经验贴中,最终顺利完成任务,记录下来,以便我这猪脑忘记! (一)任务 爬取"上海市"+"web前端"+" ...

  6. 爬虫-反爬一:boss直聘cookies反爬怎么治

    文章目录 絮叨一下 分析 开撸 1.新建爬虫 2.分析页面布局 3.步骤 1.设置middlewares以及settings(核心) 2.boss_spider.py 3.item.py 4.运行 5 ...

  7. python爬虫招聘-Python爬虫实战-抓取boss直聘招聘信息

    实战内容:爬取boss直聘的岗位信息,存储在数据库,最后通过可视化展示出来 PS注意:很多人学Python过程中会遇到各种烦恼问题,没有人帮答疑容易放弃.为此小编建了个Python全栈免费答疑.裙 : ...

  8. 爬取了BOSS直聘、拉勾等近1000+招聘需求,总结出3年+Java开发的高频技术需求

    工作3-5年,是很多技术人的职业发展分水岭. 在这个阶段,如果你能迈过「写业务代码」到「高级开发&架构师」的坎,未来的 5-10 年还将是你的上升期,你的年薪也将越来越高,甚至有机会迈入 50 ...

  9. Boss直聘Python爬虫实战

    准备工作 新建项目-新建PythonFile 安装爬虫模块 1 pip install requests requests的常用函数 request.get(),对应http协议的get请求,也就是把 ...

最新文章

  1. mysql 主从复制
  2. 专题5 低级文件编程
  3. 怎样制作一个 Python Egg
  4. HighNewTech:2019.08.08华为发布—面向2025十大趋势
  5. jQuery必知必熟基础知识
  6. 机器人砂型铸造_安诺伊智能机器人丨助力压铸厂铸造工艺提升
  7. vs 2019编写汇编并运行调试
  8. java集合框架中contains(),containsKey()和containsValue()的用法
  9. java中的NIO和IO到底是什么区别?20个问题告诉你答案
  10. 面试官:你对Redis缓存了解吗?面对这11道面试题是否有很多问号?
  11. leetcode971. Flip Binary Tree To Match Preorder Traversal
  12. java同步通信_java-线程-线程同步通信技术
  13. 没有找到MSVCR100.dll解决方法
  14. 软件构造-线程安全性
  15. IDA pro动态调试dex文件
  16. HTML实现简单水平导航栏
  17. Mac/Linux 安装ab(Apache Benchmark)
  18. 电脑配置学习(台式机)
  19. MariaDB的官方手册译文
  20. C语言常见字符串函数、字符分类函数与内存函数的使用

热门文章

  1. 类的简单名称、类全名、二进制名、全限定名、描述符
  2. shaderGraph节点学习
  3. 会计电算化什么是计算机硬件,2013年中央国家机关《会计电算化》知识点:计算机硬件...
  4. php分类程序,PHP无限级分类实现程序
  5. 一切前端概念,都是纸老虎
  6. 【一统江湖的大前端(8)】matter.js 经典物理
  7. 一个设计师眼中的好设计
  8. spark.ml支持算法总结
  9. 桌面下面有计算机 网络连接,WinXP桌面右下角提示网络电脑没有插好的原因及解决方法...
  10. 2021-07-08理论学习材料:小学数学教材解读