update with file
This commit is contained in:
parent
9d4974db1f
commit
cc4057676b
63
index.js
63
index.js
@ -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()
|
|
||||||
@ -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
2
output/10k.json
Normal file
File diff suppressed because one or more lines are too long
89
prebid.js
89
prebid.js
@ -4,6 +4,7 @@ import puppeteer from 'puppeteer-extra';
|
|||||||
import StealthPlugin from 'puppeteer-extra-plugin-stealth'
|
import StealthPlugin from 'puppeteer-extra-plugin-stealth'
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
async function prebidExplorer() {
|
async function prebidExplorer() {
|
||||||
const browser = await puppeteer
|
const browser = await puppeteer
|
||||||
.use(StealthPlugin())
|
.use(StealthPlugin())
|
||||||
@ -13,51 +14,67 @@ async function prebidExplorer() {
|
|||||||
headless: true
|
headless: true
|
||||||
});
|
});
|
||||||
|
|
||||||
|
let results = []
|
||||||
|
|
||||||
const page = await browser.newPage();
|
const page = await browser.newPage();
|
||||||
page.setDefaultTimeout(150000);
|
page.setDefaultTimeout(75000);
|
||||||
|
|
||||||
const urls = readline.createInterface({
|
const urls = readline.createInterface({
|
||||||
input: fs.createReadStream('input.txt')
|
input: fs.createReadStream('input.txt')
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
try {
|
||||||
for await (const url of urls) {
|
for await (const url of urls) {
|
||||||
console.log(`Line from file: ${url}`);
|
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)
|
|
||||||
|
|
||||||
|
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();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
48
tester.js
48
tester.js
@ -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()
|
|
||||||
Loading…
Reference in New Issue
Block a user