Я строю пользовательский браузер на основе электронов и динамически изменяю пользовательский агент для определенных доменов. Однако после удаления Electron/\* из пользовательского агента для конкретного веб-сайта демонстрационных игр сайт не загружает и бросает ошибки JavaScript.
I перехватывает все исходящие запросы. и изменить пользовательский агент в моем электронном main.js Как это:
Я строю пользовательский браузер на основе электронов и динамически изменяю пользовательский агент для определенных доменов. Однако после удаления Electron/\* из пользовательского агента для конкретного веб-сайта демонстрационных игр сайт не загружает и бросает ошибки JavaScript. I перехватывает все исходящие запросы. и изменить пользовательский агент в моем электронном main.js Как это: [code]session.defaultSession.webRequest.onBeforeSendHeaders((details, callback) => { const originalUserAgent = details.requestHeaders['User-Agent']; const newUserAgent = getUserAgentForURL(originalUserAgent, details.url);
const REMOVE_ELECTRON_COMPONENTS = [ / Electron\/([^\s]+)/g, // Removes Electron ` ${app.name}/${app.getVersion()}`, // Removes app-specific info ];
function getUserAgentForURL(userAgent, url) { if (typeof userAgent !== 'string') { console.error(`Error: Expected userAgent to be a string, but got ${typeof userAgent}`); return userAgent || 'Mozilla/5.0'; }
let componentsToRemove = [...REMOVE_ELECTRON_COMPONENTS];
// Remove Electron-specific components but keep Chrome componentsToRemove.forEach((x) => { if (userAgent) { userAgent = userAgent.replace(x, ''); } });
Когда я пытаюсь получить доступ к веб -сайту демонстрации, я получаю следующие журналы: < /p> ======================== Intercepted Request: URL: https://[removed-domain]/game-assets/other_resources.json Original User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) my-electron-app/1.0.0 Chrome/132.0.6834.159 Electron/34.0.2 Safari/537.36 Modified User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/132.0.6834.159 Safari/537.36 ======================== < /code> Тем не менее, веб-сайт не загружает и не бросает ошибки JavaScript в консоли: < /p> [96308:0201/114327.613:INFO:CONSOLE(5657)] "Uncaught TypeError: Cannot read properties of undefined (reading 'split')", source: https://[removed-domain]/build.js (5657)
[96308:0201/114327.616:INFO:CONSOLE(18588)] "Uncaught TypeError: Cannot read properties of null (reading 'length')", source: https://[removed-domain]/logo_info.js (18588) < /code> Когда я не изменяю пользовательский агент, веб-сайт работает отлично и отправляет следующий успешный запрос: < /p> ======================== Intercepted Request: URL: https://[removed-domain]/gs2c/ge/v4/game Method: POST Headers: { "host": "[removed-domain]", "connection": "keep-alive", "content-length": "145", "accept": "*/*", "accept-encoding": "gzip, deflate, br, zstd", "accept-language": "en-US", "content-type": "application/x-www-form-urlencoded", "origin": "https://[removed-domain]", "referer": "https://[removed-domain]/gs2c/html5Game.do?extGame=1&symbol..", "sec-fetch-dest": "empty", "sec-fetch-mode": "cors", "sec-fetch-site": "same-origin", "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) my-electron-app/1.0.0 Chrome/132.0.6834.159 Electron/34.0.2 Safari/537.36", "sec-ch-ua": "\"Not A(Brand\";v=\"8\", \"Chromium\";v=\"132\"", "sec-ch-ua-mobile": "?0", "sec-ch-ua-platform": "\"Windows\"" } ======================== [/code] Как я могу успешно изменить агентство пользователя?
НЕВОЗМОЖНО УДАЛИТЬ. Неправильный подход к проблеме. Используйте пример, который приводит специалист по сопровождению кода.
Все еще новичок в работе с проектом cefsharp.
Я пытаюсь привязать пользовательский агент к экземпляру вместо глобального.
В...
Я работаю над процедурно генерируемым миром. Мир построен из блоков сетки. Каждый чанк имеет свой собственный множитель высоты, который используется для установки высоты вершин. Однако, поскольку наличие разных множителей высоты между фрагментами,...
Я тестирую библиотеку Fugue, чтобы сравнить ее преимущества по сравнению с чисто PySpark, для которого я хотел бы иметь возможность тестировать различные операции исключительно с помощью Fugue.
Хотя я уже мог использовать Fugue для выполнения...
Я работаю с EF Core 8 и поставщиком MySql (Pomelo) в своем проекте .NET. Я столкнулся с любопытной ситуацией, когда следующий фрагмент кода выполняется без использования Dtos и не выдает ошибку «Невозможно создать объект в запросе LINQ to...