All Projects β†’ mbalabash β†’ puppeteer-autoscroll-down

mbalabash / puppeteer-autoscroll-down

Licence: MIT license
Handle infinite scroll on websites by puppeteer

Programming Languages

HTML
75241 projects
javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to puppeteer-autoscroll-down

Squidwarc
Squidwarc is a high fidelity, user scriptable, archival crawler that uses Chrome or Chromium with or without a head
Stars: ✭ 125 (+212.5%)
Mutual labels:  headless-chrome, puppeteer
Puppeteer Extra
πŸ’― Teach puppeteer new tricks through plugins.
Stars: ✭ 3,397 (+8392.5%)
Mutual labels:  headless-chrome, puppeteer
Deno Puppeteer
A port of puppeteer running on Deno
Stars: ✭ 128 (+220%)
Mutual labels:  headless-chrome, puppeteer
Puppeteer Functions
Puppeteer Firebase Functions demo
Stars: ✭ 75 (+87.5%)
Mutual labels:  headless-chrome, puppeteer
puppet-master
Puppeteer as a service hosted on Saasify.
Stars: ✭ 25 (-37.5%)
Mutual labels:  headless-chrome, puppeteer
Puppeteer Dart
A Dart library to automate the Chrome browser over the DevTools Protocol. This is a port of the Puppeteer API
Stars: ✭ 92 (+130%)
Mutual labels:  headless-chrome, puppeteer
Phantomas
Headless Chromium-based web performance metrics collector and monitoring tool
Stars: ✭ 2,191 (+5377.5%)
Mutual labels:  headless-chrome, puppeteer
Puppeteer Sharp Extra
Plugin framework for PuppeteerSharp
Stars: ✭ 39 (-2.5%)
Mutual labels:  headless-chrome, puppeteer
puppeteer-lambda
Module for using Headless-Chrome by Puppeteer on AWS Lambda.
Stars: ✭ 117 (+192.5%)
Mutual labels:  headless-chrome, puppeteer
CrawlerSamples
This is a Puppeteer+AngleSharp crawler console app samples, used C# 7.1 coding and dotnet core build.
Stars: ✭ 36 (-10%)
Mutual labels:  headless-chrome, puppeteer
Page2image
πŸ“· page2image is a npm package for taking screenshots which also provides CLI command
Stars: ✭ 66 (+65%)
Mutual labels:  headless-chrome, puppeteer
codepen-puppeteer
Use Puppeteer to download pens from Codepen.io as single html pages
Stars: ✭ 22 (-45%)
Mutual labels:  headless-chrome, puppeteer
Puppeteer Deep
Puppeteer, Headless ChromeοΌ›ηˆ¬ε–γ€Šes6标准ε…₯门》、θ‡ͺεŠ¨ζŽ¨ζ–‡εˆ°ζŽ˜ι‡‘γ€η«™η‚Ήζ€§θƒ½εˆ†ζžοΌ›ι«˜ηΊ§ηˆ¬θ™«γ€θ‡ͺεŠ¨εŒ–UIζ΅‹θ―•γ€ζ€§θƒ½εˆ†ζžοΌ›
Stars: ✭ 1,033 (+2482.5%)
Mutual labels:  headless-chrome, puppeteer
Awesome Puppeteer
A curated list of awesome puppeteer resources.
Stars: ✭ 1,728 (+4220%)
Mutual labels:  headless-chrome, puppeteer
Puphpeteer
A Puppeteer bridge for PHP, supporting the entire API.
Stars: ✭ 1,014 (+2435%)
Mutual labels:  headless-chrome, puppeteer
Puppeteer Cluster
Puppeteer Pool, run a cluster of instances in parallel
Stars: ✭ 2,175 (+5337.5%)
Mutual labels:  headless-chrome, puppeteer
Browserless
A browser driver on top of puppeteer, ready for production scenarios.
Stars: ✭ 664 (+1560%)
Mutual labels:  headless-chrome, puppeteer
Url To Pdf Api
Web page PDF/PNG rendering done right. Self-hosted service for rendering receipts, invoices, or any content.
Stars: ✭ 6,544 (+16260%)
Mutual labels:  headless-chrome, puppeteer
Puppeteer Examples
Puppeteer example scripts for running Headless Chrome from Node.
Stars: ✭ 2,781 (+6852.5%)
Mutual labels:  headless-chrome, puppeteer
apify-cli
Apify command-line interface helps you create, develop, build and run Apify actors, and manage the Apify cloud platform.
Stars: ✭ 37 (-7.5%)
Mutual labels:  headless-chrome, puppeteer

Handle infinite scroll on websites with puppeteer

Small puppeteer tool which makes your parsing experience a little bit better

Usage

size - Number of pixels to scroll on each step [default: 250]

delay - Delay in ms after each completed scroll step [default: 100]

stepsLimit - Max number of steps to scroll [default: null]

const puppeteer = require('puppeteer')
const { scrollPageToBottom } = require('puppeteer-autoscroll-down')

const browser = await puppeteer.launch()
const page = await browser.newPage()
await page.goto('http://example.com')

const lastPosition = await scrollPageToBottom(page, {
  size: 500,
  delay: 250
})

await browser.close()

Async content loading

You can use returned value with request/response hooks to handle async content loading

const puppeteer = require('puppeteer')
const { scrollPageToBottom } = require('puppeteer-autoscroll-down')

const browser = await puppeteer.launch()
const page = await browser.newPage()
await page.goto('http://example.com')

let isLoadingAvailable = true // Your condition-to-stop

while (isLoadingAvailable) {
  await scrollPageToBottom(page, { size: 500 })
  await page.waitForResponse(
    response => response.url() === 'http://example.com' && response.status() === 200
  )
  isLoadingAvailable = false // Update your condition-to-stop value
}

await browser.close()

Not only scroll to the bottom, but there is also function for scroll to the top

scrollPageToTop supports same API as scrollPageToBottom

const puppeteer = require('puppeteer')
const { scrollPageToTop } = require('puppeteer-autoscroll-down')

const browser = await puppeteer.launch()
const page = await browser.newPage()
await page.goto('http://example.com')

const lastPosition = await scrollPageToTop(page, {
  size: 500,
  delay: 250
})

await browser.close()

Install

npm i puppeteer-autoscroll-down

or

yarn add puppeteer-autoscroll-down

License

MIT

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].