You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Elbert Alias
19d0d95c70
|
3 years ago | |
---|---|---|
.. | ||
technologies | 3 years ago | |
Dockerfile | 3 years ago | |
README.md | 3 years ago | |
cli.js | 3 years ago | |
driver.js | 3 years ago | |
package.json | 3 years ago | |
yarn.lock | 4 years ago |
README.md
Wappalyzer
Wappalyzer indentifies technologies on websites.
Note: The wappalyzer-core package provides a low-level API without dependencies.
Command line
Installation
$ npm i -g wappalyzer
Usage
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 pages
Dependency
Installation
$ npm i wappalyzer
Usage
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 |