使用PlayWright技术实现Boss直聘爬虫
笔者之前使用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直聘爬虫相关推荐
- “鼓上蚤”带你实战之Boss直聘爬虫
1 . 前言 2 . 数据需求 3 . 分析页面 1前言 目前来说,在互联网招聘界有一个"蓬勃生长"的"招聘小巨头",也就是我们这期被爬的第一"男猪脚 ...
- Boss直聘网爬虫 基于requests 请求的源码
import requests from bs4 import BeautifulSoup import re import time import random# from zhi_lian_zha ...
- rn 实现上下滑动选择列表_用大前端技术实现的一款仿Boss直聘app(已开源)
鱼哥从去年8月我参加GDD(谷歌开发者大会)后,Flutter在一年中,版本迭代频繁,很多没有的功能都逐渐有了,很多从事移动端开发的,目前面临巨大冲击,因为大前端不是喊口号,而是确实能有巨大优势.之前 ...
- 爬虫项目——Scrapy爬取Boss直聘
Scrapy添加代理爬取boss直聘,并存储到mongodb 最终爬取截图 项目创建 items Spider Middleware添加ip代理 Pipeline添加mongodb存储 最终爬取截图 ...
- python爬虫学习(一)爬取boss直聘一页数据
第一次爬数据遇到了很多坎儿,游走在各大大佬们的经验贴中,最终顺利完成任务,记录下来,以便我这猪脑忘记! (一)任务 爬取"上海市"+"web前端"+" ...
- 爬虫-反爬一:boss直聘cookies反爬怎么治
文章目录 絮叨一下 分析 开撸 1.新建爬虫 2.分析页面布局 3.步骤 1.设置middlewares以及settings(核心) 2.boss_spider.py 3.item.py 4.运行 5 ...
- python爬虫招聘-Python爬虫实战-抓取boss直聘招聘信息
实战内容:爬取boss直聘的岗位信息,存储在数据库,最后通过可视化展示出来 PS注意:很多人学Python过程中会遇到各种烦恼问题,没有人帮答疑容易放弃.为此小编建了个Python全栈免费答疑.裙 : ...
- 爬取了BOSS直聘、拉勾等近1000+招聘需求,总结出3年+Java开发的高频技术需求
工作3-5年,是很多技术人的职业发展分水岭. 在这个阶段,如果你能迈过「写业务代码」到「高级开发&架构师」的坎,未来的 5-10 年还将是你的上升期,你的年薪也将越来越高,甚至有机会迈入 50 ...
- Boss直聘Python爬虫实战
准备工作 新建项目-新建PythonFile 安装爬虫模块 1 pip install requests requests的常用函数 request.get(),对应http协议的get请求,也就是把 ...
最新文章
- mysql 主从复制
- 专题5 低级文件编程
- 怎样制作一个 Python Egg
- HighNewTech:2019.08.08华为发布—面向2025十大趋势
- jQuery必知必熟基础知识
- 机器人砂型铸造_安诺伊智能机器人丨助力压铸厂铸造工艺提升
- vs 2019编写汇编并运行调试
- java集合框架中contains(),containsKey()和containsValue()的用法
- java中的NIO和IO到底是什么区别?20个问题告诉你答案
- 面试官:你对Redis缓存了解吗?面对这11道面试题是否有很多问号?
- leetcode971. Flip Binary Tree To Match Preorder Traversal
- java同步通信_java-线程-线程同步通信技术
- 没有找到MSVCR100.dll解决方法
- 软件构造-线程安全性
- IDA pro动态调试dex文件
- HTML实现简单水平导航栏
- Mac/Linux 安装ab(Apache Benchmark)
- 电脑配置学习(台式机)
- MariaDB的官方手册译文
- C语言常见字符串函数、字符分类函数与内存函数的使用
热门文章
- 类的简单名称、类全名、二进制名、全限定名、描述符
- shaderGraph节点学习
- 会计电算化什么是计算机硬件,2013年中央国家机关《会计电算化》知识点:计算机硬件...
- php分类程序,PHP无限级分类实现程序
- 一切前端概念,都是纸老虎
- 【一统江湖的大前端(8)】matter.js 经典物理
- 一个设计师眼中的好设计
- spark.ml支持算法总结
- 桌面下面有计算机 网络连接,WinXP桌面右下角提示网络电脑没有插好的原因及解决方法...
- 2021-07-08理论学习材料:小学数学教材解读