销售线索采集、邮件群发、自动化营销
Chrome浏览器的快捷方式,右键选择“属性”,在目标一栏加上 --remote-debugging-port=9222
,后面的端口可以自己定义,完成之后启动浏览器
Puppeteer 是一个 Node 库,它提供了一个高级 API 来通过 DevTools 协议控制 Chromium 或 Chrome。Puppeteer 默认以 headless 模式运行,但是可以通过修改配置文件运行“有头”模式。
在点击一个按钮跳转到新的 Tab 页时会新开一个页面,这个时候我们如何获取该页面对应的 Page 实例呢?可以通过监听 Browser 上的 targetcreated 事件来实现,表示有新的页面创建:
我知道我可以使用
await page.type('#inputID', 'blah');
在文本框中插入“blah”(在我的情况下,该文本具有现有文本,仅附加“blah”),但是,我找不到任何允许删除或替换现有文本的页面方法。
大家在学Selenium的时候,对于页面上的有些元素不好操作的时候,可以使用driver.execute_script()
方法执行JavaScript脚本。
获取浏览器的第一个标签页,然后访问 https://weibo.com
,等待导航完成(导航到 https://weibo.com ,然后重定向到一个新地址),等待页面网络空闲:
const [page] = await browser.pages(); await page.goto("https://weibo.com"); await page.waitForNavigation(); await page.waitForNetworkIdle();
Puppeteer 是 Chrome 开发团队在 2017 年发布的一个 Node.js 包,用来模拟 Chrome 浏览器的运行。我们团队从 Puppeteer 刚发布出来就开始成为忠实用户了(主要是因为 PhantomJs 坑太多了),本文主要在介绍 Puppeteer 的同时,结合我们平时的实践做一个分享。
使用 Puppeteer 启动的 Chrome 浏览器,默认是无法使用本地数据的,如表单项、密码、Cookies 等。
导致关闭浏览器后,重新打开页面需要重新登录,即 无法保存先前的登录状态 !
使用插件 chrome-finder
,自动查找已安装的Chrome