Создайте переменную, равную 1. Например [[PER]]
Далее POST
Затем [[PER]] увеличить на 1 и возврат к POST.
Если [[PER]] больше 3, то завершить.
Приветствую, недавно я начал пользоваться сторонним софтом для перехвата запросов на одном сайте и незначительного их редактирования
После проделывания определенных действий на сайте (кликов на элементы) я включаю софт и он ловит запрос
POST /store/buynow?ms-cv=tzyfJCv2uEULcHjJ%2B%2FgIzc.55&noCanonical=true&market=US&locale=en-US&clientName=$UNKNOWN$Com HTTP/2
Host: www.unknown.com
Cookie: MC1=GUID=c6f3470bbfaa4f4fb73bedb31e73ccde&HASH=c6f3&LV=202312&V=4&LU=1704024825343; cartMuid=38D1E676151A617416C4F58E14206087; uknownTelemetryDeviceId=59381fc7-f7e0-4584-b82f-3d685c4557f0; ANON=A=63E769D238484C5818E5AD08FFFFFFFF&E=1d3c&W=2; NAP=V=1.9&E=1ce2&C=O79_MzBcd5WRGNcc9bg2a3gNs_kwnlougE17d_X656obeJks5ZT_pA&W=2; akacd_OneRF=1711801884~rv=17~id=988876813988b823e61e005b813177e0; MUID=1F1227D0E3C76B2A2D783428E24C6AB1; MSFPC=GUID=c6f3470bbfaa4f4fb73bedb31e73ccde&HASH=c6f3&LV=202312&V=4&LU=1704024825343; MS0=677297306af243268c25e33e8c3ba710; ai_session=QuNnXxvD/ZFx2xih93NObD|1704039414274|1704039414274
Content-Length: 3067
Cache-Control: max-age=0
Sec-Ch-Ua: "Chromium";v="119", "Not?A_Brand";v="24"
Sec-Ch-Ua-Mobile: ?0
Sec-Ch-Ua-Platform: "Windows"
Upgrade-Insecure-Requests: 1
Origin: https://www.$UNKNOWN$.com
Content-Type: application/x-www-form-urlencoded
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.6045.199 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Sec-Fetch-Site: cross-site
Sec-Fetch-Mode: navigate
Sec-Fetch-User: ?1
Sec-Fetch-Dest: iframe
Referer: https://www.$UNKNOWN$.com/
Accept-Encoding: gzip, deflate, br
Accept-Language: en-US,en;q=0.9
Priority: u=0, i
data=%7B%22products%22%3A%5B%7B%22productId%22%3A%229NB54XTF084M%22%2C%22skuId%22%3A%220010%22%2C%22availabilityId%22%3A%229P4BX9TM0HZ3%22%7D%5D%2C%22campaignId%22%3A%22$UNKNOWN$comct%22%2C%22callerApplicationId%22%3A%22$UNKNOWN$Com%22%2C%22expId%22%3A%5B%22EX%3Asc_$UNKNOWN$gamepad%22%2C%22EX%3Asc_$UNKNOWN$spinner%22%2C%22EX%3Asc_$UNKNOWN$closebutton%22%2C%22EX%3Asc_$UNKNOWN$uiexp%22%2C%22EX%3Asc_disabledefaultstyles%22%2C%22EX%3Asc_gamertaggifting%22%5D%2C%22flights%22%3A%5B%22sc_$UNKNOWN$gamepad%22%2C%22sc_$UNKNOWN$spinner%22%2C%22sc_$UNKNOWN$closebutton%22%2C%22sc_$UNKNOWN$uiexp%22%2C%22sc_disabledefaultstyles%22%2C%22sc_gamertaggifting%22%5D%2C%22clientType%22%3A%22$UNKNOWN$Com%22%2C%22data%22%3A%7B%22usePurchaseSdk%22%3Atrue%7D%2C%22layout%22%3A%22Modal%22%2C%22cssOverride%22%3A%22$UNKNOWN$Com2NewUI%22%2C%22theme%22%3A%22dark%22%2C%22scenario%22%3A%22gift%22%2C%22suppressGiftThankYouPage%22%3Atrue%7D&auth=%7B%22XToken%22%3A%22XBL3.0+x%3D26905049464691295%3BeyJlbmMiOiJBMTI4Q0JDK0hTMjU2IiwiYWxnIjoiUlNBLU9BRVAiLCJjdHkiOiJKV1QiLCJ6aXAiOiJERUYiLCJ4NXQiOiJZWXpaQjVNSEo2VHUtZ0w0ZlhkWWhUN3dINVEifQ.m0sYmz3gRWIi01RpET9_XHy6Z2a8c1DR31brwfBTqtVbUExjHaJYQ9QP26ySBmkdvOIojSSOUB-yoXCY2zTiQblVKjDGc4ENDfpi6RbMFreuiSC9ZHofAM-DsF2m99_5YvI6IDNoCt8YxiSJwRNTNh1k7vYUmLx7exQKhnHLZG9Q526Z446Gg6GJT41Y_J49-aP_VsHflWXOEQ806HWC1kIl8Lx6btGrc-bhNdAiQlYQeb0tIL1qKkSK98RjjxT8IPNRiru8wp_Fpoj38SevETXNmk490xrjjkGEwmFwpHR2yVErbBktI_1LkA0zpuzMAdYm6V5tlYxpkFLaNoj53w.luYNXXS0X9uPw2Vi9KebbQ.sp4uE7OuC1cWN8Q_mAfSVUZkwKfYnuVZ1VRSCbG0LhzVlTziTWIeECUDR6A2OjpYbvlUwpAW6k9zxTXBP8hXblwpRlBwhJaqAzz77OwQpTjx2omwNrnatbuYTzq548nzf5UJmB6r62Nl4zRKnbEPbwxthJ60vRqNQ5BXlZdJXdg_29guNQFrqoaBuS7MNTGtQ_mWuKG0v0Xyww-DTwthbazDqT6QqRNC8YYI2jzj5flvFqBa-FeZCRK2yxisf-G3w8vf7c9H-_PdZp2SdZ0BlOq_xqERToI8PgAaxS1RTudwRcxDNdfGbwrbxVh-V7oMlrM7i9yiHFISIoZLHa28pxyJjSdxQ4cABEF5nZs4h92uSeF_DCO3efUOP7N4R7COnpQ8himjh83ebDeT-irbwTfTcpZZUaIM_3IgtubFVUdUIn9SyDwQjn1C6bstE3kR55Ds021bZ_1OaGdBF47Rr6LMj28gJQS8TCeEaIXVumaV1vm2eoE7yHTSt1r50kyrQbaafau8vyz02ggNSk2klTbmaqAzmrOzHQ3SYsAvTW-e9dwkrcrfHvcpri98_2Bxz0jFo_cLVXsb0gz6VHst-TsPx9AKctPsbpKXpiAZ25gHMgCnxNKOz08oiw0IPD7Ft_tseooK2VUmnqUPE9SLBp_vHsMc6HCjlY_hUr9jY64Zb-Ho2YGYM0sjabQPinRP-1t3fnSnUXFnEAfSSuEPtk6Pp1ZCLx-uJ6n2qz4UfgVVaRuxNONsIhLhPWUHnh_LvF_qIMKjJc-dbLNmrKKDKo3RLDpl0DY7CJv1SRRXlwMjZMA635BlOJ-f-cH5shYKnQrdjP27iRfdvgBFaFEhfHc2WbGd3Um-T08N8JkQ2-7C943P2BCyaM_ja8OegnBmsZkkRSH8IZBPT65lRY84hLmm-JdwpYdAocViZsOwBpwRHs_gQZY9IEGByQtEEhDKQU-w01YkBTL6tU0mRuLkNvRcMowcq0kIuG6tZ5uvJDa8TLmagkA0mDmCkV2G_4hftEnBatX42kJEP_Ifl6GZ9TPGsZNeCzz8fYsoSmeaI3btWnx8YvNrYQZ4uWkjbVYlD3i2tuGiL0MaIJyCXWpxPWWjUsqvFafr5mV_GfDtf8zw5K2fsDgUPr9Iz8LiOdEHcDLUJojrEXBwyGbdriF9b-r8L81eAaer_HJyTXanU0rxQ3i4yvWiKb-rtRMDxNi7dIgLd2fHmaEYXAt1ciTQjgHs0xnQ6PAr0Gjg4QbnkauskHr4yi5NuMVCA6QKmPWV5NGzYfZmNSjBA3FD-NzGHeK40bzbTsAqnrjmns99ZyrJsepnG76_Kt6_Yi0f3ibwdz4-juq5ICG5acHS_QVv6-9TFeIVCv09zIiWk8kLi-Si1dx_f9Pu8vqvHgvF4a6GJl6G8RO8sXPvc7c7Vtky6ncca02Wm0jADf6Xwy9LK6_ZLFOKKovP90hd0a7bfTc092hBL5_eG6YSiJ_v0vNQLSMRnf6pFgABexvTQyYXC_Gg4YMF61M8CNZhpK_PslirMh_7_Ip2xPD1421oqaxddicza7_UZAFtsoMcy4FexFtGi566RRadvLQbJFpYqn2D.TRuuTVibfipkwjCvzOaaBdVfAR_254Jpxx1uuJNxlI4%22%7D
После я меняю значение US в пост запросе (&market=US&) на &market=HE&
И на этом вся работа с запросом заканчивается
вопрос, как мне после проделывания этих же действий в басе "поймать" этот запрос и отредактировать его?
Буду крайне благодарен за любую помощь
делаем запросы в браузере, "Получить последний элемент кэша" по маске вашего сайта, распарсить этот запрос через json, потом "заменить строку" нужной вам переменной (юрл), другие данные спарсить по типу заголовков и т.д, "загрузить cookie из браузера" или "установить заголовок". Создать пост запрос с нужными данными которые вы спарсили, замененными, не забудьте прокси для клиента устанавливаются отдельно от браузера
@qwe123123
Накинь манкипатч. Вот пример на фетч.
const { fetch: fetch_ } = window;
window.fetch = function (...args) {
console.log("Вызов fetch перехвачен:", ...args);
let [resource, config ] = args;
resource = 'https://httpbin.org/headers'
console.log("Вызов fetch перехвачен:", [resource, config]);
return fetch_(resource, config);
}.bind(window.fetch);
@Metaferssance Большое спасибо за отклик, но у меня чуть другая задача
Еесли я все это распаршу и заюзаю по твоему гайду - то запрос уже улетит, c которого кэш генерился
И если я отправлю заново те же самые параметры - сработает фрод и система меня пошлет
Есть ли какая-нибудь возможность в басе получить определенный запрос с параметрами, после чего заморозить его (не отправлять обратно) изменить значения в пост запросе и отправить его теми же остальными параметрами
Я извиняюсь если криво изъясняюсь, честно, вообще во всей этой теме с запросами впервые копаюсь)
пообщался с нейронкой, выдала такой ответ исходя из примера выше с манкипатчемм, адаптировано для bas, ибо не поддерживает напрямую использование сервис-воркеров в среде (по крайней мере так думает нейронка)
В Browser Automation Studio (BAS), чтобы отложить отправку запроса до момента его изменения, вы можете использовать JavaScript код для перехвата запроса и изменения параметра. Для этого вы можете воспользоваться событием beforeSendRequest.
Пример кода, который можно вставить в среду Browser Automation Studio:
javascript
Copy code
// Функция для изменения параметра "market"
function modifyMarketParameter(request) {
// Получение параметров из URL
var url = new URL(request.url);
var params = new URLSearchParams(url.search);
// Замена параметра &market=US на &market=AR
params.set('market', 'AR');
// Установка новых параметров в URL
url.search = params.toString();
// Замена URL в запросе
request.url = url.toString();
return request;
}
// Перехватчик перед отправкой запроса
window.addEventListener('beforeSendRequest', function(event) {
// Вызов функции для изменения параметра "market"
event.request = modifyMarketParameter(event.request);
});
люди добрые, подскажите пожалуйста, куда и как мне это вообще вставить?)
Впервые с запросами сталкиваюсь
Вот у меня есть действие на сайте - именно после его выполнения (прожатия по элементу) приходит запрос который и необходимо перехватить и заменить в нем "ссылку"
как мне это все реализовать
Вот выдала алгоритм уже, что и как в басе самом добавлять
Но я искренне не понимаю что она имеет ввиду под блок "перехват запроса" и как это все накидать в басе
такого кубика я не нашел
Добавьте блок "Открыть сайт" (Open Site).
Укажите URL страницы, на которой вы хотите выполнить изменение параметра "market".
Выполнение JavaScript кода:
Добавьте блок "Выполнить Javascript" (Execute JavaScript).
Вставьте JavaScript код, который был предоставлен в предыдущем ответе, в поле "JavaScript Code".
Перехват запроса:
Добавьте блок "Перехват запроса" (Request Interceptor).
В этом блоке укажите необходимые условия, при которых запрос будет перехвачен. Например, вы можете использовать условие "Если URL содержит" и указать часть URL, где меняется параметр "market".
Изменение параметра "market":
Внутри блока "Перехват запроса" добавьте блок "Выполнить Javascript".
Используйте JavaScript код для изменения параметра "market" в соответствии с предыдущим примером.
Отправка измененного запроса:
После блока "Перехват запроса" добавьте блок "Отправить запрос" (Send Request).
Укажите нужные параметры запроса (URL, метод, заголовки, тело запроса и т. д.).
Дополнительные действия:
В зависимости от вашего сценария, вам может потребоваться добавить дополнительные действия. Например, сохранение ответа, обработка ошибок и так далее.
@qwe123123 said in Вопрос по работе с запросами (post):
по крайней мере так думает нейронка
Нейронка, когда имеет мало знаний по заданному вопросу (например про БАС) начинает выдумывать правдобный бредокод, поэтому чтобы использовать нейронку хорошо бы самому разбираться в этом вопросе )