Send a head request to the website in which you are willing to find whether WAF is present or not, it's header will reveal it's secret.
Here is an example:
{'Server': 'cloudflare-nginx', 'Vary': 'User-Agent', 'CF-RAY': '3c2dd8c6XXX47f370c8-SIN', 'Set-Cookie': '__cfduid=d6d107c6a6c85a29e4b0161c22251f4b61511542011; expires=Sat, 24-Nov-18 16:46:51 GMT; path=/; domain=.xxxxx.com; HttpOnly', 'Content-Encoding': 'gzip', 'Connection': 'keep-alive', 'Date': 'Fri, 24 Nov 2017 16:46:51 GMT', 'Content-Type': 'text/html; charset=UTF-8', 'X-Powered-By': 'PHP/5.6.31'
Look at the Server, it says it is cloudflare.
I once gathered the names of firewall from the internet for my project which I guess might be useful.
https://github.com/VISWESWARAN1998/Siva/blob/master/firewall_names.txt
Here is how a head request is made using python in 3 lines of code
>>> import requests
>>> r = requests.head("Your website")
>>> r.headers
Note: The name of the firewall could present in other places like X-CDN rather than server for some websites. So test all parts of header against the firewall names.