JSPM

technology-detector-node

1.0.3
    • ESM via JSPM
    • ES Module Entrypoint
    • Export Map
    • Keywords
    • License
    • Repository URL
    • TypeScript Types
    • README
    • Created
    • Published
    • Downloads 9
    • Score
      100M100P100Q34288F
    • License MIT

    Identify technology on websites

    Package Exports

    • technology-detector-node
    • technology-detector-node/driver.js

    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 (technology-detector-node) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

    Readme

    technology-detector-node

    technology-detector-node indentifies technologies on websites.

    Installation

    $ npm i technology-detector-node

    Usage

    const Detector = require('technology-detector-node')
    
    const url = 'https://www.example.com'
    
    const options = {
      debug: false,
      delay: 500,
      headers: {},
      maxDepth: 3,
      maxUrls: 10,
      maxWait: 5000,
      recursive: true,
      probe: true,
      proxy: false,
      userAgent: 'Wappalyzer',
      htmlMaxCols: 2000,
      htmlMaxRows: 2000,
      noScripts: false,
      noRedirect: false,
    };
    
    const detector = new Detector(options)
    
    ;(async function() {
      try {
        await detector.init()
    
        // Optionally set additional request headers
        const headers = {}
    
        // Optionally set local and/or session storage
        const storage = {
          local: {},
          session: {}
        }
    
        const site = await detector.open(url, headers, storage)
    
        // 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 detector.destroy()
    })()

    Multiple URLs can be processed in parallel:

    const Detector = require('technology-detector-node');
    
    const urls = ['https://www.example.com', 'https://www.example_2.com']
    
    const detector = new Detector();
    (async function() {
      try {
        await detector.init()
    
        const results = await Promise.all(
          urls.map(async (url) => {
            const site = await detector.open(url)
    
            const results = await site.analyze()
    
            return { url, results }
          })
        )
    
        console.log(JSON.stringify(results, null, 2))
      } catch (error) {
        console.error(error)
      }
    
      await detector.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, scriptsSrc, scripts, meta, js, language links Emitted after a page has been analysed
    analyze urls, technologies, meta Emitted when the site has been analysed