Package Exports
- wappalyzer
- wappalyzer/driver
- wappalyzer/wappalyzer
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (wappalyzer) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
Wappalyzer
Wappalyzer indentifies technologies on websites.
Note: The wappalyzer-core package provides a low-level API without dependencies.
Command line
Installation
$ npm i -g wappalyzerUsage
wappalyzer <url> [options]Options
-b, --batch-size=... Process links in batches
-d, --debug Output debug messages
-t, --delay=ms Wait for ms milliseconds between requests
-h, --help This text
--html-max-cols=... Limit the number of HTML characters per line processed
--html-max-rows=... Limit the number of HTML lines processed
-D, --max-depth=... Don't analyse pages more than num levels deep
-m, --max-urls=... Exit when num URLs have been analysed
-w, --max-wait=... Wait no more than ms milliseconds for page resources to load
-P, --pretty Pretty-print JSON output
-p, --probe Perform a deeper scan by performing additional requests and inspecting DNS records
-r, --recursive Follow links on pages (crawler)
-a, --user-agent=... Set the user agent string
-n, --no-scripts Disabled JavaScript on web pagesDependency
Installation
$ npm i wappalyzerUsage
const Wappalyzer = require('wappalyzer');
const url = 'https://www.wappalyzer.com';
const options = {
debug: false,
delay: 500,
headers: {},
maxDepth: 3,
maxUrls: 10,
maxWait: 5000,
recursive: true,
probe: true,
userAgent: 'Wappalyzer',
htmlMaxCols: 2000,
htmlMaxRows: 2000,
noScripts: false,
};
const wappalyzer = new Wappalyzer(options)
;(async function() {
try {
await wappalyzer.init()
// Optionally set additional request headers
const headers = {}
const site = await wappalyzer.open(url, headers)
// Optionally capture and output errors
site.on('error', console.error)
const results = await site.analyze()
console.log(JSON.stringify(results, null, 2))
} catch (error) {
console.error(error)
}
await wappalyzer.destroy()
})()Multiple URLs can be processed in parallel:
const Wappalyzer = require('wappalyzer');
const urls = ['https://www.wappalyzer.com', 'https://www.example.com']
const wappalyzer = new Wappalyzer()
;(async function() {
try {
await wappalyzer.init()
const results = await Promise.all(
urls.map(async (url) => ({
url,
results: await wappalyzer.open(url).analyze()
}))
)
console.log(JSON.stringify(results, null, 2))
} catch (error) {
console.error(error)
}
await wappalyzer.destroy()
})()Events
Listen to events with site.on(eventName, callback). Use the page parameter to access the Puppeteer page instance (reference).
| Event | Parameters | Description |
|---|---|---|
log |
message, source |
Debug messages |
error |
message, source |
Error messages |
request |
page, request |
Emitted at the start of a request |
response |
page, request |
Emitted upon receiving a server response |
goto |
page, url, html, cookies, scripts, meta, js, language links |
Emitted after a page has been analysed |
analyze |
urls, technologies, meta |
Emitted when the site has been analysed |