mirror of
https://github.com/opelly27/streetmerchant.git
synced 2026-05-20 05:17:35 +00:00
feat(lookup): use random user agents (#1335)
This commit is contained in:
@@ -307,9 +307,6 @@ const page = {
|
||||
inStockWaitTime: envOrNumber(process.env.IN_STOCK_WAIT_TIME),
|
||||
screenshot: envOrBoolean(process.env.SCREENSHOT),
|
||||
timeout: envOrNumber(process.env.PAGE_TIMEOUT, 30000),
|
||||
userAgents: envOrArray(process.env.USER_AGENT, [
|
||||
'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36'
|
||||
]),
|
||||
width: 1920
|
||||
};
|
||||
|
||||
|
||||
+1
-1
@@ -162,7 +162,7 @@ async function lookup(browser: Browser, store: Store) {
|
||||
const page = await context.newPage();
|
||||
|
||||
page.setDefaultNavigationTimeout(config.page.timeout);
|
||||
await page.setUserAgent(getRandomUserAgent());
|
||||
await page.setUserAgent(await getRandomUserAgent(browser));
|
||||
|
||||
let adBlockRequestHandler: any;
|
||||
let pageProxy;
|
||||
|
||||
@@ -50,7 +50,7 @@ export const Amazon: Store = {
|
||||
brand: 'gigabyte',
|
||||
cartUrl:
|
||||
'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B08NYPLXPJ&Quantity.1=1',
|
||||
model: 'gaming oc',
|
||||
model: 'gaming oc pro',
|
||||
series: '3060ti',
|
||||
url: 'https://www.amazon.com/dp/B08NYPLXPJ'
|
||||
},
|
||||
|
||||
+11
-5
@@ -2,6 +2,7 @@ import {Browser, Page, Response} from 'puppeteer';
|
||||
import {StatusCodeRangeArray, Store} from './store/model';
|
||||
import {config} from './config';
|
||||
import {disableBlockerInPage} from './adblocker';
|
||||
import {getRandom} from 'random-useragent';
|
||||
import {logger} from './logger';
|
||||
|
||||
export function getSleepTime(store: Store) {
|
||||
@@ -57,7 +58,7 @@ export async function usingPage<T>(
|
||||
): Promise<T> {
|
||||
const page = await browser.newPage();
|
||||
page.setDefaultNavigationTimeout(config.page.timeout);
|
||||
await page.setUserAgent(getRandomUserAgent());
|
||||
await page.setUserAgent(await getRandomUserAgent(browser));
|
||||
|
||||
try {
|
||||
return await cb(page, browser);
|
||||
@@ -78,8 +79,13 @@ export async function closePage(page: Page) {
|
||||
await page.close();
|
||||
}
|
||||
|
||||
export function getRandomUserAgent(): string {
|
||||
return config.page.userAgents[
|
||||
Math.floor(Math.random() * config.page.userAgents.length)
|
||||
];
|
||||
export async function getRandomUserAgent(browser: Browser): Promise<string> {
|
||||
const userAgent =
|
||||
getRandom((ua) => {
|
||||
return ua.browserName === 'Chrome' && ua.browserVersion > '20';
|
||||
}) ?? (await browser.userAgent());
|
||||
|
||||
logger.debug('user agent', userAgent);
|
||||
|
||||
return userAgent;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user