Chrome is used to retrieve cloudflare cookies then got is used to perform requests making this solution reliable but also pretty fast.
Version 2 is a complete rewrite:
- it doesn't use puppeteer but vanilla chromium,
- request package was replaced by got ,
- headless support only works on linux out of the box but should be doable on windows or mac os with the help of docker or wsl.
- extra features were removed (captcha bypass, etc..)
npm install cloudflare-scraper
Make sure you alse have xfvb linux package installed
# for ubuntu users
sudo apt-get install xvfb
import got from 'cloudflare-scraper';
(async () => {
try {
const response = await got.get('https://nowsecure.nl');
console.log(response.body);
} catch (error) {
console.log(error);
}
})();
Check got documenatation
By default, chromium is downloaded but on npm install
command but you can skip the installation by enabling this variable.
export NODE_CHROMIUM_SKIP_INSTALL=true
Specify a chrome executable
export CHROME_EXECUTABLE_PATH=/path/to/chrome
Enable/disable headless mode (enabled by default)
Note: headless mode uses "xfvb" and is only available on linux
export CF_SCRAPER_HEADLESS=false
- add proxy support
- docker example