Node.js 什么是Web Scraping
Web Scraping是指从互联网上收集任何类型的数据,例如图像、文本或视频。当某人需要收集大量数据时,使用Web Scraping可以通过自动化过程来节省大量时间。
Puppeteer: 在Node.js中,有许多用于Web Scraping的模块,但其中一个易于实现且流行的模块是Puppeteer。Puppeteer提供了许多方法,使整个Web Scraping和Web Automation的过程更加简单。我们可以通过输入以下命令在项目目录中安装此模块。
npm install puppeteer
方法:
步骤1: 需要 Puppeteer 模块
const puppeteer = require('puppeteer');
步骤2: 创建一个异步函数
async function webScraper() {
...
};
webScraper();
步骤3: 在函数内部,创建两个常量,第一个是名为 browser 的常量,用于启动Puppeteer,第二个是名为 page 的常量,用于浏览和打开新页面进行爬取。
async function webScraper() {
const browser = await puppeteer.launch({})
const page = await browser.newPage()
};
webScraper();
步骤4: 使用 goto 方法,打开我们想要爬取的网站,然后选择我们想要的文本所在的元素,然后从该元素中提取文本并将文本记录到控制台。
await page.goto(
'https://www.geeksforgeeks.org/explain-the-mechanism-of-event-loop-in-node-js/')
var element = await page.waitFor("h1")
var text = await page.evaluate(element => element.textContent, element)
console.log(text)
browser.close()
示例:
const puppeteer = require('puppeteer');
async function webScraper() {
const browser = await puppeteer.launch({})
const page = await browser.newPage()
await page.goto(
'https://www.geeksforgeeks.org/explain-the-mechanism-of-event-loop-in-node-js/')
let element = await page.waitFor("h1")
let text = await page.evaluate(
element => element.textContent, element)
console.log(text)
browser.close()
};
webScraper();
运行该应用程序的步骤: 在终端打开,并输入以下命令。
node app.js
输出: