Puppeteer 爬虫框架入门
有时候,我们需要从网页上获取一些数据,而手动复制粘贴就太费时间了。这时,Puppeteer 就能派上用场了。它是一个 Node.js 库,可以用来操作 Chrome 浏览器。
Puppeteer 中文释义是提线木偶,意思我们可以很方便地通过操纵它来控制浏览器。
安装 Puppeteer
首先,我们需要安装 Puppeteer。在终端中运行以下命令:
npm install puppeteer
注:建议用最新版本的 Node
使用 Puppeteer 爬取网页
让我们来看一个简单的例子。假设我们需要从 Google 上搜索一些信息。我们可以通过以下代码来实现:
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('<https://www.google.com/>');
await page.type('input[name="q"]', 'Puppeteer');
await page.keyboard.press('Enter');
await page.waitForNavigation();
const searchResult = await page.$eval('#search', el => el.innerText);
console.log(searchResult);
await browser.close();
})();
这段代码的作用是打开 Chrome 浏览器,进入 Google 主页,搜索关键词 “Puppeteer”,等待页面加载完成后获取搜索结果并输出在控制台上,最后关闭浏览器。
1、使用 puppeteer.launch()
方法来打开浏览器,然后使用 browser.newPage()
方法创建一个新页面。
2、接着,使用 page.goto(url)
方法来访问需要爬取的网页。在这个例子中,我们访问的是 Google 主页。
3、接下来,我们使用 page.type(selector, text)
方法来在搜索框中输入关键词 “Puppeteer”,然后使用 page.keyboard.press(key)
方法来模拟按下回车键,从而触发搜索操作。
4、等待页面加载完成,通过 page.$eval(selector, callback)
方法来获取搜索结果。本例中,我们使用 CSS 选择器 #search
来定位搜索结果的元素,并使用回调函数来获取该元素的文本内容。
5、最后,使用 browser.close()
方法来关闭浏览器。
小结
使用 Puppeteer 可以非常方便地爬取网页并获取所需的数据。当然,我们还可以通过 Puppeteer 来模拟用户的行为,如点击、滚动等操作,从而更加灵活地获取所需的数据。
如果你对 Puppeteer 感兴趣,可以去 官方文档 中了解更多详细信息。
转载自:https://juejin.cn/post/7223551330449932344