Add Google My Business detection

main
Elbert Alias 4 years ago
parent 823324acb0
commit 81a8be36eb

@ -419,8 +419,7 @@ class Site {
try {
await this.promiseTimeout(
page.goto(url.href, { waitUntil: 'domcontentloaded' }),
'a'
page.goto(url.href, { waitUntil: 'domcontentloaded' })
)
await sleep(1000)
@ -442,12 +441,10 @@ class Site {
rel,
})
)
),
'c'
)
).jsonValue(),
'b'
)
).catch(() => [])
).jsonValue()
).catch(() => [])
// CSS
const css = await this.promiseTimeout(
@ -475,12 +472,10 @@ class Site {
}
return css.join('\n')
}, this.options.htmlMaxRows),
'd'
)
).jsonValue(),
'e'
)
}, this.options.htmlMaxRows)
).catch(() => '')
).jsonValue()
).catch(() => '')
// Script tags
const scripts = await this.promiseTimeout(
@ -491,9 +486,9 @@ class Site {
.map(({ src }) => src)
.filter((src) => src)
)
)
).catch(() => [])
).jsonValue()
)
).catch(() => [])
// Meta tags
const meta = await this.promiseTimeout(
@ -513,12 +508,10 @@ class Site {
},
{}
)
),
'f'
)
).jsonValue(),
'g'
)
).catch(() => [])
).jsonValue()
).catch(() => [])
// JavaScript
const js = await this.promiseTimeout(
@ -553,9 +546,8 @@ class Site {
Wappalyzer.technologies
.filter(({ js }) => Object.keys(js).length)
.map(({ name, js }) => ({ name, chains: Object.keys(js) }))
),
'h'
)
).catch(() => [])
// DOM
const dom = await this.promiseTimeout(
@ -631,9 +623,8 @@ class Site {
Wappalyzer.technologies
.filter(({ dom }) => dom)
.map(({ name, dom }) => ({ name, dom }))
),
'i'
)
).catch(() => [])
// Cookies
const cookies = (await page.cookies()).reduce(

@ -13,7 +13,7 @@
"software"
],
"homepage": "https://www.wappalyzer.com/",
"version": "6.5.33",
"version": "6.5.34",
"author": "Wappalyzer",
"license": "MIT",
"repository": {

@ -3,9 +3,9 @@
"@types/node@*":
version "14.6.0"
resolved "https://registry.yarnpkg.com/@types/node/-/node-14.6.0.tgz#7d4411bf5157339337d7cff864d9ff45f177b499"
integrity sha512-mikldZQitV94akrc4sCcSjtJfsTKt4p+e/s0AGscVA6XArQ9kFclP+ZiYUMnq987rc6QlYxXv/EivqlfSLxpKA==
version "14.14.41"
resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.41.tgz#d0b939d94c1d7bd53d04824af45f1139b8c45615"
integrity sha512-dueRKfaJL4RTtSa7bWeTK1M+VH+Gns73oCgzvYfHZywRCoPSd8EkXBL0mZ9unPTveBn+D9phZBaxuzpwjWkW0g==
"@types/yauzl@^2.9.1":
version "2.9.1"
@ -20,19 +20,19 @@ agent-base@5:
integrity sha512-TMeqbNl2fMW0nMjTEPOwe3J/PRFP4vqeoNuQMG0HlMrtm5QxKqdvAkZ1pRBQ/ulIyDD5Yq0nJ7YbdD8ey0TO3g==
balanced-match@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c=
base64-js@^1.0.2:
version "1.3.1"
resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1"
integrity sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==
bl@^4.0.1:
version "4.0.3"
resolved "https://registry.yarnpkg.com/bl/-/bl-4.0.3.tgz#12d6287adc29080e22a705e5764b2a9522cdc489"
integrity sha512-fs4G6/Hu4/EE+F75J8DuN/0IpQqNjAdC7aEQv7Qt8MHGUH7Ckv2MwTEEeN9QehD0pfIDkMI1bkHYkKy7xHyKIg==
version "1.0.2"
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
base64-js@^1.3.1:
version "1.5.1"
resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a"
integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==
bl@^4.0.3:
version "4.1.0"
resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a"
integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==
dependencies:
buffer "^5.5.0"
inherits "^2.0.4"
@ -52,12 +52,12 @@ buffer-crc32@~0.2.3:
integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=
buffer@^5.2.1, buffer@^5.5.0:
version "5.6.0"
resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.6.0.tgz#a31749dc7d81d84db08abf937b6b8c4033f62786"
integrity sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==
version "5.7.1"
resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0"
integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==
dependencies:
base64-js "^1.0.2"
ieee754 "^1.1.4"
base64-js "^1.3.1"
ieee754 "^1.1.13"
chownr@^1.1.1:
version "1.1.4"
@ -70,16 +70,16 @@ concat-map@0.0.1:
integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
debug@4, debug@^4.1.0, debug@^4.1.1:
version "4.1.1"
resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791"
integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==
version "4.3.1"
resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee"
integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==
dependencies:
ms "^2.1.1"
ms "2.1.2"
devtools-protocol@0.0.799653:
version "0.0.799653"
resolved "https://registry.yarnpkg.com/devtools-protocol/-/devtools-protocol-0.0.799653.tgz#86fc95ce5bf4fdf4b77a58047ba9d2301078f119"
integrity sha512-t1CcaZbvm8pOlikqrsIM9GOa7Ipp07+4h/q9u0JXBWjPCjHdBl9KkddX87Vv9vBHoBGtwV79sYQNGnQM6iS5gg==
devtools-protocol@0.0.818844:
version "0.0.818844"
resolved "https://registry.yarnpkg.com/devtools-protocol/-/devtools-protocol-0.0.818844.tgz#d1947278ec85b53e4c8ca598f607a28fa785ba9e"
integrity sha512-AD1hi7iVJ8OD0aMLQU5VK0XH9LDlA1+BcPIgrAxPfaibx2DbWucuyOhc4oyQCbnvDDO68nN6/LcKfqTP343Jjg==
end-of-stream@^1.1.0, end-of-stream@^1.4.1:
version "1.4.4"
@ -151,10 +151,10 @@ https-proxy-agent@^4.0.0:
agent-base "5"
debug "4"
ieee754@^1.1.4:
version "1.1.13"
resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84"
integrity sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==
ieee754@^1.1.13:
version "1.2.1"
resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352"
integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==
inflight@^1.0.4:
version "1.0.6"
@ -176,11 +176,6 @@ locate-path@^5.0.0:
dependencies:
p-locate "^4.1.0"
mime@^2.0.3:
version "2.4.6"
resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.6.tgz#e5b407c90db442f2beb5b162373d07b69affa4d1"
integrity sha512-RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA==
minimatch@^3.0.4:
version "3.0.4"
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
@ -193,11 +188,16 @@ mkdirp-classic@^0.5.2:
resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113"
integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==
ms@^2.1.1:
ms@2.1.2:
version "2.1.2"
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
node-fetch@^2.6.1:
version "2.6.1"
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052"
integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==
once@^1.3.0, once@^1.3.1, once@^1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
@ -265,15 +265,15 @@ pump@^3.0.0:
once "^1.3.1"
puppeteer@^5.3.0:
version "5.3.0"
resolved "https://registry.yarnpkg.com/puppeteer/-/puppeteer-5.3.0.tgz#0abf83d0f2d1273baf2b56885a813f8052903e33"
integrity sha512-GjqMk5GRro3TO0sw3QMsF1H7n+/jaK2OW45qMvqjYUyJ7y4oA//9auy969HHhTG3HZXaMxY/NWXF/NXlAFIvtw==
version "5.5.0"
resolved "https://registry.yarnpkg.com/puppeteer/-/puppeteer-5.5.0.tgz#331a7edd212ca06b4a556156435f58cbae08af00"
integrity sha512-OM8ZvTXAhfgFA7wBIIGlPQzvyEETzDjeRa4mZRCRHxYL+GNH5WAuYUQdja3rpWZvkX/JKqmuVgbsxDNsDFjMEg==
dependencies:
debug "^4.1.0"
devtools-protocol "0.0.799653"
devtools-protocol "0.0.818844"
extract-zip "^2.0.0"
https-proxy-agent "^4.0.0"
mime "^2.0.3"
node-fetch "^2.6.1"
pkg-dir "^4.2.0"
progress "^2.0.1"
proxy-from-env "^1.0.0"
@ -311,21 +311,21 @@ string_decoder@^1.1.1:
safe-buffer "~5.2.0"
tar-fs@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.1.0.tgz#d1cdd121ab465ee0eb9ccde2d35049d3f3daf0d5"
integrity sha512-9uW5iDvrIMCVpvasdFHW0wJPez0K4JnMZtsuIeDI7HyMGJNxmDZDOCQROr7lXyS+iL/QMpj07qcjGYTSdRFXUg==
version "2.1.1"
resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.1.1.tgz#489a15ab85f1f0befabb370b7de4f9eb5cbe8784"
integrity sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==
dependencies:
chownr "^1.1.1"
mkdirp-classic "^0.5.2"
pump "^3.0.0"
tar-stream "^2.0.0"
tar-stream "^2.1.4"
tar-stream@^2.0.0:
version "2.1.3"
resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.1.3.tgz#1e2022559221b7866161660f118255e20fa79e41"
integrity sha512-Z9yri56Dih8IaK8gncVPx4Wqt86NDmQTSh49XLZgjWpGZL9GK9HKParS2scqHCC4w6X9Gh2jwaU45V47XTKwVA==
tar-stream@^2.1.4:
version "2.2.0"
resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287"
integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==
dependencies:
bl "^4.0.1"
bl "^4.0.3"
end-of-stream "^1.4.1"
fs-constants "^1.0.0"
inherits "^2.0.3"
@ -355,9 +355,9 @@ wrappy@1:
integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
ws@^7.2.3:
version "7.3.1"
resolved "https://registry.yarnpkg.com/ws/-/ws-7.3.1.tgz#d0547bf67f7ce4f12a72dfe31262c68d7dc551c8"
integrity sha512-D3RuNkynyHmEJIpD2qrgVkc9DQ23OrN/moAwZX4L8DfvszsJxpjQuUq3LMx6HoYji9fbIOBY18XWBsAux1ZZUA==
version "7.4.5"
resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.5.tgz#a484dd851e9beb6fdb420027e3885e8ce48986c1"
integrity sha512-xzyu3hFvomRfXKH8vOFMU3OguG6oOvhXMo3xsGy3xWExqaM2dxBbVxuD99O7m3ZUFMvvscsZDqxfgMaRr/Nr1g==
yauzl@^2.10.0:
version "2.10.0"

@ -14,7 +14,7 @@ const { agent, promisify, getOption, setOption, open, globEscape } = Utils
const expiry = 1000 * 60 * 60 * 24
const hostnameIgnoreList = /((local|dev(elop(ment)?)?|stag(e|ing)?|preprod|preview|test(ing)?|demo(shop)?|admin|cache)[.-]|localhost|wappalyzer|google|facebook|twitter|reddit|yahoo|wikipedia|amazon|youtube|\/admin|\.local|\.test|\.dev|^[0-9.]$)/
const hostnameIgnoreList = /((local|dev(elop(ment)?)?|stag(e|ing)?|preprod|preview|test(ing)?|demo(shop)?|admin|cache)[.-]|localhost|wappalyzer|google|facebook|twitter|reddit|yahoo|wikipedia|amazon|youtube|\/admin|\.local|\.test|\.dev|\.netlify\.app|\.shopifypreview\.com|^[0-9.]+$)/
const xhrDebounce = []
@ -192,7 +192,6 @@ const Driver = {
)
if (text) {
console.log(selector, text)
return analyzeManyToMany(technology, 'dom.text', {
[selector]: [text],
})

@ -4,7 +4,7 @@
"author": "Wappalyzer",
"homepage_url": "https://www.wappalyzer.com/",
"description": "Identify web technologies",
"version": "6.5.33",
"version": "6.5.34",
"default_locale": "en",
"manifest_version": 2,
"icons": {

@ -13,7 +13,7 @@
"software"
],
"homepage": "https://www.wappalyzer.com/",
"version": "6.5.33",
"version": "6.5.34",
"author": "Wappalyzer",
"license": "MIT",
"repository": {

@ -1220,32 +1220,6 @@
"scripts": "urbanairship\\.\\w+/notify/v([\\d.]+)\\;version:\\1",
"website": "https://www.airship.com"
},
"Arc": {
"cats": [
31
],
"description": "Arc is a peer-to-peer CDN that pays site owners for using it. Instead of expensive servers in distant datacenters, Arc's network is comprised of browsers.",
"js": {
"arc.p2pClient": "",
"arcWidgetJsonp": ""
},
"xhr": "\\.arc\\.io",
"dom": {
"#arc-widget": {
"attributes": {
"id": ""
}
}
},
"scripts": "arc\\.io/widget\\.js",
"icon": "Arc.svg",
"pricing": [
"low",
"recurring"
],
"saas": true,
"website": "https://arc.io"
},
"Akamai": {
"cats": [
31
@ -2056,6 +2030,32 @@
"scripts": "arastta\\.js",
"website": "http://arastta.org"
},
"Arc": {
"cats": [
31
],
"description": "Arc is a peer-to-peer CDN that pays site owners for using it. Instead of expensive servers in distant datacenters, Arc's network is comprised of browsers.",
"dom": {
"#arc-widget": {
"attributes": {
"id": ""
}
}
},
"icon": "Arc.svg",
"js": {
"arc.p2pClient": "",
"arcWidgetJsonp": ""
},
"pricing": [
"low",
"recurring"
],
"saas": true,
"scripts": "arc\\.io/widget\\.js",
"website": "https://arc.io",
"xhr": "\\.arc\\.io"
},
"Arc Publishing": {
"cats": [
1
@ -3434,6 +3434,25 @@
"icon": "Bulma.png",
"website": "http://bulma.io"
},
"Bumb": {
"cats": [
4
],
"description": "Bump is an API contract management platform that helps document and track APIs by identifying changes in API structure, and keeping developers informed through an elegant documentation.",
"dom": {
".doc-navigation footer, footer.catalog-footer": {
"text": "Powered by Bump"
}
},
"icon": "Bump.svg",
"pricing": [
"recurring",
"freemium",
"low"
],
"saas": true,
"website": "https://bump.sh"
},
"Business Catalyst": {
"cats": [
1
@ -6296,25 +6315,6 @@
},
"website": "http://facebook.com"
},
"TikTok Pixel": {
"cats": [
10
],
"description": "",
"dom": {
"script[data-hid='tiktok']": {
"attributes": {
"data-hid": ""
}
}
},
"xhr": "analytics\\.tiktok\\.com",
"icon": "TikTok.svg",
"js": {
"TiktokAnalyticsObject": ""
},
"website": "https://ads.tiktok.com"
},
"Facebook Sign-in": {
"cats": [
69
@ -7761,6 +7761,14 @@
"url": "^https?://sites\\.google\\.com",
"website": "http://sites.google.com"
},
"Google My Business": {
"cats": [
1
],
"icon": "Google.svg",
"url": "https?://[^.]+\\.business\\.site",
"website": "https://www.google.com/business/website-builder"
},
"Google Tag Manager": {
"cats": [
42
@ -16757,6 +16765,30 @@
"scripts": "smjslib\\.js",
"website": "http://smartstore.com"
},
"SmugMug": {
"cats": [
7
],
"description": "SmugMug is a paid image sharing, image hosting service, and online video platform on which users can upload photos and videos.",
"dom": {
".sm-page-footer-copyright": {
"text": "SmugMug"
}
},
"headers": {
"Smug-CDN": ""
},
"icon": "SmugMug.svg",
"js": {
"_smugsp": ""
},
"pricing": [
"recurring",
"low"
],
"saas": true,
"website": "https://www.smugmug.com"
},
"Snap": {
"cats": [
18,
@ -18173,6 +18205,25 @@
"scripts": "code\\.tidio\\.co",
"website": "https://www.tidio.com"
},
"TikTok Pixel": {
"cats": [
10
],
"description": "",
"dom": {
"script[data-hid='tiktok']": {
"attributes": {
"data-hid": ""
}
}
},
"icon": "TikTok.svg",
"js": {
"TiktokAnalyticsObject": ""
},
"website": "https://ads.tiktok.com",
"xhr": "analytics\\.tiktok\\.com"
},
"Tiki Wiki CMS Groupware": {
"cats": [
1,
@ -22290,42 +22341,6 @@
"generator": "xt:Commerce"
},
"website": "https://www.xt-commerce.com"
},
"Bumb": {
"cats": [
4
],
"description": "Bump is an API contract management platform that helps document and track APIs by identifying changes in API structure, and keeping developers informed through an elegant documentation.",
"dom": {
".doc-navigation footer, footer.catalog-footer": {
"text": "Powered by Bump"
}
},
"pricing": ["recurring", "freemium", "low"],
"saas": true,
"icon": "Bump.svg",
"website": "https://bump.sh"
},
"SmugMug": {
"cats": [
7
],
"description": "SmugMug is a paid image sharing, image hosting service, and online video platform on which users can upload photos and videos.",
"dom": {
".sm-page-footer-copyright": {
"text": "SmugMug"
}
},
"headers": {
"Smug-CDN": ""
},
"js": {
"_smugsp": ""
},
"pricing": ["recurring", "low"],
"saas": true,
"icon": "SmugMug.svg",
"website": "https://www.smugmug.com"
}
}
}

File diff suppressed because it is too large Load Diff
Loading…
Cancel
Save