У меня есть сервер узлов. Я передаю Url в запрос, а затем извлекаю контуры с помощью cherio. Теперь то, что я пытаюсь сделать, это определить, использует ли эта веб-страница аналитика Google. Как мне это сделать?
request({uri: URL}, function(error, response, body)
{
if (!error)
{
const $ = cheerio.load(body);
const usesAnalytics = body.includes('googletag') || body.includes('analytics.js') || body.includes('ga.js');
const isUsingGA = ?;
}
}
С официального сайта аналитики говорят, что вы можете найти некоторые строки, которые указывают на то, что GA активен. Я попытался проверить тело для них, но они всегда возвращают false, даже если на этой странице работает GA. Я включил это в код выше.
Я посмотрел на веб-сайты, которые его используют, и я не вижу ничего в своем индексе, который предположил бы, что они его используют. Его единственное, когда я иду к их источникам и вижу, что они его используют. Как я могу обнаружить это в узле?
У меня есть сценарий Node, который использует Puppeteer для отслеживания запросов, отправленных с веб-сайта.
Я написал это некоторое время назад, поэтому некоторые части могут быть неактуальны для вас, но здесь вы идете:
'use strict';
const puppeteer = require('puppeteer');
function getGaTag(lookupDomain){
return new Promise((resolve) => {
(async() => {
var result = [];
const browser = await puppeteer.launch({ headless: true });
const page = await browser.newPage();
await page.setRequestInterception(true);
page.on('request', request => {
const url = request.url();
const regexp = /(UA|YT|MO)-\d+-\d+/i;
// look for tracking script
if (url.match(/^https?:\/\/www\.google-analytics\.com\/(r\/)?collect/i)) {
console.log(url.match(regexp));
console.log('\n');
result.push(url.match(regexp)[0]);
}
request.continue();
});
try {
await page.goto(lookupDomain);
await page.waitFor(9000);
} catch (err) {
console.log("Couldn't fetch page " + err);
}
await browser.close();
resolve(result);
})();
})
}
getGaTag('https://store.google.com/').then(result => {
console.log(result)
})
Запуск node ga-check.js
теперь возвращает идентификатор UA трекера Google Analytucs в домене поиска: [ 'UA-54090495-1' ]
который в этом случае является https://store.google.com.
Надеюсь это поможет!