mirror of
https://github.com/R0m1k3/Priceflow.git
synced 2026-10-24 07:38:13 +02:00
Merge pull request #214 from R0m1k3/antigravity
feat: Enhance Amazon stealth with comprehensive anti-detection
This commit is contained in:
1 file changed
+60
-3
@@ -190,12 +190,69 @@ class AmazonScraperService:
|
|||||||
),
|
),
|
||||||
locale="fr-FR",
|
locale="fr-FR",
|
||||||
timezone_id="Europe/Paris",
|
timezone_id="Europe/Paris",
|
||||||
|
# Additional stealth parameters
|
||||||
|
extra_http_headers={
|
||||||
|
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8",
|
||||||
|
"Accept-Language": "fr-FR,fr;q=0.9,en-US;q=0.8,en;q=0.7",
|
||||||
|
"Accept-Encoding": "gzip, deflate, br",
|
||||||
|
"DNT": "1",
|
||||||
|
"Connection": "keep-alive",
|
||||||
|
"Upgrade-Insecure-Requests": "1",
|
||||||
|
"Sec-Fetch-Dest": "document",
|
||||||
|
"Sec-Fetch-Mode": "navigate",
|
||||||
|
"Sec-Fetch-Site": "none",
|
||||||
|
"Sec-Fetch-User": "?1",
|
||||||
|
"Cache-Control": "max-age=0",
|
||||||
|
},
|
||||||
)
|
)
|
||||||
|
|
||||||
# Stealth mode
|
# Comprehensive stealth mode
|
||||||
await context.add_init_script("""
|
await context.add_init_script("""
|
||||||
Object.defineProperty(navigator, 'webdriver', { get: () => undefined });
|
// Remove webdriver property
|
||||||
window.chrome = { runtime: {} };
|
Object.defineProperty(navigator, 'webdriver', {
|
||||||
|
get: () => undefined
|
||||||
|
});
|
||||||
|
|
||||||
|
// Add chrome property
|
||||||
|
window.chrome = {
|
||||||
|
runtime: {},
|
||||||
|
loadTimes: function() {},
|
||||||
|
csi: function() {},
|
||||||
|
app: {}
|
||||||
|
};
|
||||||
|
|
||||||
|
// Override permissions
|
||||||
|
const originalQuery = window.navigator.permissions.query;
|
||||||
|
window.navigator.permissions.query = (parameters) => (
|
||||||
|
parameters.name === 'notifications' ?
|
||||||
|
Promise.resolve({ state: Notification.permission }) :
|
||||||
|
originalQuery(parameters)
|
||||||
|
);
|
||||||
|
|
||||||
|
// Add plugins
|
||||||
|
Object.defineProperty(navigator, 'plugins', {
|
||||||
|
get: () => [1, 2, 3, 4, 5]
|
||||||
|
});
|
||||||
|
|
||||||
|
// Add languages
|
||||||
|
Object.defineProperty(navigator, 'languages', {
|
||||||
|
get: () => ['fr-FR', 'fr', 'en-US', 'en']
|
||||||
|
});
|
||||||
|
|
||||||
|
// Override platform
|
||||||
|
Object.defineProperty(navigator, 'platform', {
|
||||||
|
get: () => 'Win32'
|
||||||
|
});
|
||||||
|
|
||||||
|
// Mock battery API
|
||||||
|
Object.defineProperty(navigator, 'getBattery', {
|
||||||
|
get: () => () => Promise.resolve({
|
||||||
|
charging: true,
|
||||||
|
chargingTime: 0,
|
||||||
|
dischargingTime: Infinity,
|
||||||
|
level: 1
|
||||||
|
})
|
||||||
|
});
|
||||||
""")
|
""")
|
||||||
|
|
||||||
await context.route("**/*", lambda route: route.continue_())
|
await context.route("**/*", lambda route: route.continue_())
|
||||||
|
|||||||
Reference in new issue
Block a user