update with file

This commit is contained in:
Chris-Prebid 2024-09-30 11:00:35 -06:00
parent 9d4974db1f
commit cc4057676b
5 changed files with 55 additions and 156 deletions

View File

@ -1,63 +0,0 @@
import * as fs from 'fs';
import { createObjectCsvWriter } from 'csv-writer';
import puppeteer from 'puppeteer-extra';
import StealthPlugin from 'puppeteer-extra-plugin-stealth'
let payload = []
const OUTPUT_DIRECTORY = 'output';
const urls = ['https://yelp.com','https://www.cbsnews.com','https://www.cnbc.com']
const prebidSearch = async () => {
const browser = await puppeteer
.use(StealthPlugin())
.launch({
protocolTimeout: 300000,
defaultViewport: null,
headless: false
});
const page = await browser.newPage();
try {
for (let [index, value] of urls.entries()) {
await page.goto(value);
const results = await page.evaluate(async () => {
const sleep = ms => new Promise(res => setTimeout(res, ms));
await sleep((1000 * 60) * .25); // wait for page to load
if (!window._pbjsGlobals) return null; // return null if no PBJS found
const result = window._pbjsGlobals.map((pbjs) => {
const { version, installedModules } = window[pbjs];
return {
instance: pbjs, // instance name
url: location.href, // url
version, // version
installedModules // list of installed modules
}
})
return result;
});
payload = payload.concat(results);
}
if (!fs.existsSync(OUTPUT_DIRECTORY)) fs.mkdirSync(OUTPUT_DIRECTORY);
const csvWriter = createObjectCsvWriter({
path: `${OUTPUT_DIRECTORY}/${Date.now()}-output.csv`,
header: [
{id: 'url', title: 'URL'},
{id: 'instance', title: 'PBJS Instance'},
{id: 'version', title: 'PBJS Version'},
{id: 'installedModules', title: 'PBJS Installed Modules'},
]
});
await csvWriter.writeRecords(payload);
} catch (e) {
console.log(e)
} finally {
await page.close();
await browser.close();
}
}
prebidSearch()

View File

@ -1,9 +0,0 @@
https://www.cnbc.com
https://yelp.com
https://buzzfeed.com
https://www.ebay.com
https://www.foxnews.com
https://www.cbsnews.com
https://www.techcrunch.com
https://www.bbc.com
https://starcraft.fandom.com

2
output/10k.json Normal file

File diff suppressed because one or more lines are too long

View File

@ -4,6 +4,7 @@ import puppeteer from 'puppeteer-extra';
import StealthPlugin from 'puppeteer-extra-plugin-stealth'
async function prebidExplorer() {
const browser = await puppeteer
.use(StealthPlugin())
@ -13,51 +14,67 @@ async function prebidExplorer() {
headless: true
});
let results = []
const page = await browser.newPage();
page.setDefaultTimeout(150000);
page.setDefaultTimeout(75000);
const urls = readline.createInterface({
input: fs.createReadStream('input.txt')
});
for await (const url of urls) {
console.log(`Line from file: ${url}`);
await page.goto(url);
await page.evaluate(async () => {
const sleep = ms => new Promise(res => setTimeout(res, ms));
await sleep((1000 * 60) * .40);
})
const hasPrebid = await page.evaluate(() => {
if (window._pbjsGlobals) {
return true
} else {
return false
}
})
const prebidObj = await page.evaluate(() => {
if (window._pbjsGlobals && window._pbjsGlobals.includes('pbjs')) {
return {
url : location.href,
version : pbjs.version,
modules : pbjs.installedModules
}
} else {
return null
}
});
console.log(prebidObj)
console.log(hasPrebid)
try {
for await (const url of urls) {
console.log(`Line from file: ${url}`);
await page.goto(url , { timeout: 70000, waitUntil: 'networkidle2' });
await page.evaluate(async () => {
const sleep = ms => new Promise(res => setTimeout(res, ms));
await sleep((1000 * 60) * .11);
})
const hasPrebid = await page.evaluate(() => {
if (window._pbjsGlobals) {
return true
} else {
return false
}
})
const prebidObj = await page.evaluate(() => {
if (window._pbjsGlobals && window._pbjsGlobals.includes('pbjs')) {
return {
url : location.href,
version : pbjs.version,
modules : pbjs.installedModules
}
} else {
return null
}
});
if (prebidObj != null) {
results.push(prebidObj)
}
//console.log(prebidObj)
//console.log(hasPrebid)
}
} catch (error) {
throw new Error(error);
} finally {
console.log(results)
try {
fs.appendFileSync('output/10k.json', JSON.stringify(results))
} catch (err) {
console.error(err)
}
if (browser) {
await browser.close();
}
}
}

View File

@ -1,48 +0,0 @@
import * as fs from 'fs';
import { createObjectCsvWriter } from 'csv-writer';
import puppeteer from 'puppeteer-extra';
import StealthPlugin from 'puppeteer-extra-plugin-stealth'
const urls = ['https://techcrunch.com','https://www.cbsnews.com','https://www.cnbc.com' , 'https://www.foxnews.com']
const arraySearch = async () => {
const browser = await puppeteer
.use(StealthPlugin())
.launch({
protocolTimeout: 300000,
defaultViewport: null,
headless: false
});
const page = await browser.newPage();
try {
for (let [index, value] of urls.entries()) {
if (index < urls.length) {
await page.goto(value);
await page.evaluate(async () => {
const sleep = ms => new Promise(res => setTimeout(res, ms));
await sleep((1000 * 60) * .25);
if (!window._pbjsGlobals) {
}
})
} else {
await page.close();
await browser.close();
}
}
} catch (e) {
console.log(e)
} finally {
await page.close();
await browser.close();
}
}
arraySearch()