Structures

This module defines the structures used by the package.

class wap.structs.Category(id_: str, name: str, priority: int)

A category to classify technologies in groups. Examples or categories are “CMS”, “Javascript frameworks”, “Web servers”, etc.

The exhaustive list of categories is defined in the technologies.json file in the wappalyzer repository.

id_

The identifier of category in technologies.json.

Type:str
name

The name of the category (e.g CMS).

Type:str
priority
Type:int
class wap.structs.Exclude(name: str)

Structure to define a technology that is incompatible with another one.

name

Name of the excluded technology.

Type:str
class wap.structs.Imply(name: str, confidence: int)

Structure to define a technology that is implied by the use of another one.

name

Name of the implied technology.

Type:str
confidence

Confidence of the implied technology.

Type:int
class wap.structs.Pattern(value: str, regex: re.Pattern, confidence: int, version: str, key: str)

Holds the pattern definition that allows to identify a technology.

value

The pattern string.

Type:str
regex

The regex used to identify the pattern.

Type:re.Pattern
confidence

The confidence given by the value matched by this pattern.

Type:int
version

String that indicates how to identify the version in the matched value.

Type:str
key

Key to identified the element to apply the pattern (e.g a cookie or header name).

Type:str
class wap.structs.PatternMatch(technology: wap.structs.Technology, pattern: wap.structs.Pattern, version: str)

Identifies a match in a technology pattern.

technology

Technology identified by the pattern.

Type:Technology
pattern

Pattern that cause the match.

Type:Pattern
version

Version identified by the pattern in the match.

Type:str
class wap.structs.TechMatch(technology: wap.structs.Technology, confidence: int, version: str)

Identifies a match in a technology.

technology

Technology identified.

Type:Technology
confidence

Confidence in the match, is derivated from all the patterns of this technology that matched.

Type:int
version

Version identified by the patterns.

Type:str
class wap.structs.Technology(name: str, categories: List[wap.structs.Category], url: List[wap.structs.Pattern], headers: Dict[str, List[wap.structs.Pattern]], cookies: Dict[str, List[wap.structs.Pattern]], html: List[wap.structs.Pattern], meta: Dict[str, List[wap.structs.Pattern]], scripts: List[wap.structs.Pattern], js: Dict[str, List[wap.structs.Pattern]], implies: List[wap.structs.Imply], excludes: List[wap.structs.Exclude], icon: str, website: str, cpe: str)

Definition of a technology and all of its rules that is extracted from technologies.json file.

name
Type:str
categories

Categories to which the technology belongs.

Type:List[Category]
url

List of patterns to identify urls of the technology.

Type:List[Pattern]
headers

List of headers patterns identified by the name of the header.

Type:Dict[str, List[Pattern]]
cookies

List of cookies patterns identified by the name of the cookie.

Type:Dict[str, List[Pattern]]
html

List of patterns to match HTML content.

Type:List[Pattern]
meta

List of patterns to match meta tags in HTML content, identified by the name of the each tag.

Type:Dict[str, List[Pattern]]
scripts

List of patterns to match scripts URLs.

Type:List[Pattern]
js

Dictionary that identifies javascript variables and regex for the values.

Type:Dict[str, List[Pattern]]
implies

List of technology names that are used in conjuction with the current technology.

Type:List[Imply]
excludes

List of technologies that are incompatible with the current technology.

Type:List[Exclude]
icon

Indicates the file with the icon (in Wappalyzer icons folder).

Type:str
website

Indicates the url of the technology website.

Type:str
cpe
Type:str