首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

不仅仅可以用来做爬虫,Puppeteer 还可以干这个!

$(selector) 点击元素 await el.click() 输入内容 await el.type(text) 执行Console代码(重点) const res = await page.evaluate...任何熟悉前端技术的开发者都应该了解 Chrome 开发者工具中的 Console,任何 JS 的代码都可以在这里被运行,其中包括点击事件、获取元素、增删改元素等等。...另外,回调函数中的返回可以作为 evaluate 的返回,赋值给 res,这经常被用作数据抓取。...为什么选择掘金呢?这是因为掘金的登录并不像其他某些网站(例如 CSDN )要求输入验证码(这会增大复杂度),只要求输入账户名和密码就可以登录了。 为了方便新手理解,我们将从爬虫基本结构开始讲解。...$(selector) 和 el.type(text) 这两个 API ,分别用于获取元素输入内容。而最后的 elSubmit.click() 是提交表单的操作。

2.5K30

Thinking -- CSS根解决选择前一个兄弟元素

(如何选中下面每个b元素前的a元素) CSS 不存在选择前一个兄弟元素选择器!CSS 不存在选择前一个兄弟元素选择器! 为什么?...流布局 块元素: 按照基于其父元素的书写顺序(默认: horizontal-tb) 的*块流动方向 (block flow direction)*放置 — 每个块级元素会在上一个元素下面另起一行。...如果可以通过当前元素选择前一个兄弟元素,可能会导致额外的重绘操作!...这个伪类通过把可容错相对选择器列表作为参数,提供了一种针对引用元素选择元素或者先前的兄弟元素的方法。...总结 “既然没有选择前一个兄弟元素选择器”,那就布局反向(右向左),这样问题就变为了”如何选择后一个兄弟元素“。 解决这个问题的方式并不难,但思路值得延伸。

97330

写个爬虫,爬取 Boss 直聘全部前端岗位

首先,进入搜索页面,选择全国范围,搜索前端: 然后职位列表的每个点进去查看描述,把这个岗位的信息和描述抓取下来: 创建 test.js import puppeteer from 'puppeteer'...然后就是自动化的流程了: 首先进入职位搜索页面,等 job-list-box 这个元素出现之后,也就是列表加载完成了。 就点击城市选择按钮,选择全国。 然后在输入输入前端,点击搜索。 然后跑一下。...,第二个参数是对选择出的元素做一些处理后返回。...我们新建个 nest 项目: npm install -g @nestjs/cli nest new boss-jd-spider 用 docker 把 mysql 跑起来: docker 官网下载...比如搜索职位描述中包含 react 的岗位: SELECT * FROM `boss-spider`.job where `desc` like "%React%"; 这样,爬虫就做完了。

30020

使用Puppeteer提升社交媒体数据分析的精度和效果

但是,如何社交媒体上获取这些数据呢?一种常用的方法是使用网络爬虫,即一种自动化地网页上提取数据的程序。...Puppeteer是一个可以控制Chrome或Chromium浏览器的API,它可以实现以下功能:生成网页截图或PDF文件模拟用户操作,如点击、输入、滚动等捕获网页上的元素,如文本、图片、链接等监听网页上的事件...Puppeteer提供了一系列的方法来实现这些操作,例如:page.type()方法可以在指定的选择器中输入文本page.click()方法可以点击指定的选择器page.waitForSelector(...Puppeteer提供了一些方法来获取网页上的元素,例如:page.$()方法可以返回一个匹配指定选择器的元素对象page.$$()方法可以返回一个匹配指定选择器的元素对象数组page....$eval()方法可以对一个匹配指定选择器的元素对象执行回调函数,并返回结果page.

27820

自动化 Web 性能分析之 Puppeteer 爬虫实践

Puppeteer 用途 生成页面的屏幕截图和 PDF。 爬取 SPA 应用,并生成预渲染内容(即 SSR 服务端渲染)。 自动执行表单提交、UI测试、键盘输入等。...页面抓取所需要的内容。...初探 Puppeteer页面截图开始 实现页面截图,首先我们需要创建一个浏览器实例,然后打开一个页面,加载指定的 URL,在打开的页面上触发截图操作,最后再将浏览器关闭。...[, options]) 点击要选择元素 page.waitForNavigation([options]) 等待页面跳转 page.waitFor(selectorOrFunctionOrTimeout...browser.createIncognitoBrowserContext() 创建一个匿名浏览器上下文,这将不会与其他浏览器上下文分享 cookies/cache page.waitForSelector(selector[, options]) 等待指定的选择器匹配的元素出现在页面中

3.4K40

puppeteer爬虫教程_python爬虫入门最好书籍

译者按: 本文通过简单的例子介绍如何使用Puppeteer来爬取网页数据,特别是用谷歌开发者工具获取元素选择器值得学习。...如果async最终顺利返回,Promise则可以顺利reslove,得到结果;否则将会reject一个错误。...在当前目录下,我们创建一个scrape.js文件,输入如下代码: const puppeteer = require('puppeteer'); let scrape = async () => {...查看Puppeteer API,可以找到定义点击的函数: page.click(selector[, options]) selector 一个选择器来指定要点击的元素。...如果多个元素满足,那么默认选择第一个。 幸运的是,谷歌开发者工具提供一个可以快速找到选择元素的方法。在图片上方右击,选择检查(Inspect)选项。

1.8K20

这一次,Google 终于对 Web 自动化下手了!

installdataindex=empty&defaultbrowser=0 下面聊一下具体的使用步骤 1 - 录制 首先,打开 Chrome Canary 软件,F12 进入到 Devtools 开发者工具悬浮窗 选择右上角的更多工具...比如,我是百度首页创建的录制步骤,这里默认添加了一个初始 Step,url 指向当前 URL 在左侧浏览器中模拟一次搜索操作,即:在输入框中输入内容,并点击搜索按钮 在右侧的录制页面会同步记录下操作的流程步骤...」前添加了一个步骤,该步骤类型为等待元素出现,使用元素选择选择目标元素 3 - 重放 录制、编辑完成之后,点击右上角的「 Replay 」按钮即可以回放,并且会在录制页面会展示回放步骤及结果 4...」来实现的 const puppeteer = require('puppeteer'); (async () => { const browser = await puppeteer.launch...相比直接使用 puppeteer 编码自动化脚本,Chrome Recorder 录制自动化流程更加方便快捷!

81020

前端人的爬虫工具【Puppeteer

,通过该该实例可以实现对元素的点击,填写表单等行为,我们可以通过选择器,xPath 等来获取对应的元素 JsHandle:对应 DOM 中的 javascript 对象,ElementHandle 继承于...v1.18.1到v2.1.0的版本依赖于Node 8.9.0+。v3.0.0开始,Puppeteer开始依赖于Node 10.18.1+。...$('#uniqueId'):获取某个选择器对应的第一个元素 page.$$('div'):获取某个选择器对应的所有元素 page....#uniqueId'):等待某个选择器对应的元素出现 Case2: 模拟用户操作 const puppeteer = require('puppeteer'); (async () => {...():鼠标 hover 到某个元素上 elementHandle.type('hello'):在输入输入文本 Case3: 植入 javascript 代码 Puppeteer 最强大的功能是,你可以在浏览器里执行任何你想要运行的

3.3K20

如何有序数组中找到和为指定的两个元素下标

如何有序数组中找到和为指定的两个元素下标?...例如:{2, 7, 17, 26, 27, 31, 41, 42, 55, 80} target=72.求得为17和55,对应下标为:2,8 思考下,只要将元素自己与后面的所有元素相加计算一下,就能找到对应的两个...换个思路,在这个有序数组中,可以使用2个指针分别代表数组两侧的两个目标元素.目标数组的两侧,向中间移动;当两个指针指向的元素计算,比预定target小了,那左侧指针右移下,重新计算;当计算大于target...时,右侧指针左移下,直到两个元素和与target相等.这种方法叫做搜索空间缩减,这也是这道题的关注点.这种方法的时间复杂度只有O(2*n)(非严谨说法),是非常高效的一种方法了.

2.3K20

Web UI自动化框架-Puppeteer

自动提交表单,进行 UI 测试,键盘输入等。 创建一个时时更新的自动化测试环境。使用最新的 JavaScript 和浏览器功能直接在最新版本的Chrome中执行测试。...-记录点击次数,输入事件等 -记录屏幕截图。 -导航时暂停录音。 -监视记录的事件。 -导出到Puppeteer代码。 -调整生成代码的设置。...、请求、响应 page.waitForXPath:等待 xPath 对应的元素出现,返回对应的 ElementHandle 实例 page.waitForSelector :等待选择器对应的元素出现,返回对应的...('#uniqueId'):等待某个选择器对应的元素出现 4、元素操作 elementHandle.click():点击某个元素 elementHandle.tap():模拟手指触摸点击 elementHandle.focus...():聚焦到某个元素 elementHandle.hover():鼠标 hover 到某个元素上 elementHandle.type('hello'):在输入输入文本

1.9K20

Puppeteer已经取代PhantomJs

,通过该该实例可以实现对元素的点击,填写表单等行为,我们可以通过选择器,xPath 等来获取对应的元素 JsHandle:对应 DOM 中的 javascript 对象,ElementHandle 继承于...、请求、响应 page.waitForXPath:等待 xPath 对应的元素出现,返回对应的 ElementHandle 实例 page.waitForSelector :等待选择器对应的元素出现,返回对应的...$(‘#uniqueId’):获取某个选择器对应的第一个元素 page.$$(‘div’):获取某个选择器对应的所有元素 page....’):等待某个选择器对应的元素出现 2、 模拟用户登录 (async () => { const browser = await puppeteer.launch({ slowMo...():鼠标 hover 到某个元素上 elementHandle.type(‘hello’):在输入输入文本 3、拦截请求 请求在有些场景下很有必要,拦截一下没必要的请求提高性能,我们可以在监听 Page

6.1K10
领券