Cloudflare es un servicio de proxy que entre otras funcionalidades proporciona protección DDoS. Está diseñado especialmente para aplicaciones web (HTTP y HTTPS), aunque también aporta protección para otros servicios como pueden ser FTP, SSH.
La solución más cómoda actualmente es el módulo cloudscraper. Y digo actualmente por que Cloudflare cambia sus técnicas de protección periódicamente, por lo que conviene estar atentos a las actualizaciones en el repositorio de este tipo de librerías..
# pip install cloudscraper (instalación)
import cloudscraper
scraper = cloudscraper.create_scraper() # devuelve una instancia de CloudScraper
print(scraper.get("http://somesite.com").text) # => "<!DOCTYPE html><html><head>..."
Otra solución que también es facil de implementar es el módulo cloudflare-scrape (código fuente). La estructura de ambos módulos podéis observar que es muy similar.
# pip install -U cfscrape (instalación mediante pip)
import cfscrape
scraper = cfscrape.create_scraper()
r = scraper.get('https://www.domain.com/')
print(r.text)