Skip to content

Instantly share code, notes, and snippets.

@pshapiro
Created November 28, 2017 06:46
Show Gist options
  • Star 7 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save pshapiro/2258dd1128d7ad37b38731bc4af6512d to your computer and use it in GitHub Desktop.
Save pshapiro/2258dd1128d7ad37b38731bc4af6512d to your computer and use it in GitHub Desktop.
Puppeteer Crawler Example
var Walker = require('puppeteer-walker')
var fs = require('fs')
var walker = Walker()
fs.writeFile('output.csv', 'URL, Title, H2\r\n', 'utf8', function (err) {
console.log(`Header written`)
})
walker.on('end', () => console.log('finished walking'))
walker.on('error', (err) => console.log('error', err))
walker.on('page', async (page) => {
var url = await page.url()
var title = await page.title()
try {
var h2 = await page.evaluate(() => document.querySelector('h2').innerText);
fs.appendFile('output.csv', `${url}, ${title}, ${h2}\r\n`, 'utf8', function (err) {
console.log(
`url: ${url}, title: ${title}, h2: ${h2}`)
})
} catch(e) {
fs.appendFile('output.csv', `${url}, ${title}, ERROR\r\n`, 'utf8', function (err) {
console.log(
`url: ${url}, title: ${title}, h2: ERROR`)
})
}
})
walker.walk('http://jsseo.expert/')
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment