Implementation of Wappalyzer in Python.
virtualenv venv
source venv/bin/activate
pip install -r requirements.txt
Update the Wappalyzer database (apps.json
):
python main.py update
python main.py analyze -u <url>
This will output a JSON list of applications.
python main.py analyze -u https://google.com
[
"Google Web Server"
]
Wappalyzer is a JavaScript application therefore some of the regex wont compile
in Python. You may see a message in the stderr
with the faulty regex:
python main.py analyze -u https://google.com
Error with regex (?:<div class="sf-toolbar[^>]+?>[^]+<span class="sf-toolbar-value">([\d.])+|<div id="sfwdt[^"]+" class="[^"]*sf-toolbar)
[
"Google Web Server"
]
This Python implementation will returns less technologies than the official app and here is why :
- The official Wappalyzer is written in JavaScript, so it analyze the global
variables from the JavaScript files. If you check my implementation, the
analyze_js
method tries to look for global variables in Python but it cannot find with accurately the patterns in minified code. - Some website may returns different page based on your session cookie. That why the browser extension may returns more accurate technologies than the cli application.
MIT
The apps.json
comes from the official Wappalyzer repository