>Форум Mozilla Россия http://forum.mozilla-russia.org/index.php >iMacros http://forum.mozilla-russia.org/viewforum.php?id=42 >Вытянуть данные при совпадении нескольких условий http://forum.mozilla-russia.org/viewtopic.php?id=74915 |
gødmøde > 15-09-2019 00:23:25 |
Добрый вечер, я совсем новичек в этом деле, начинаю с самого простого, но уже нужна помощь более опытных) скрытый текст Выделить код Код:<tr data-href="тутURL" data-server="9792" data-side="52" data-online="1"> <td>ServerAbc</td> <td>Orki</td> <td><div> <a href="тутURL/users/2323/">ProdavecVasia</a> <span class="label label-success">online</span> <a href="тутURL">ProdavecVasia</a> <span class="label label-success">online</span></div><div class="text-muted">на сайте год, 333 отзывов</div></td> <td class="text-right"> 49 </td> <td class="text-right" data-s="2"> <div>9.96 ₽</div> </td> </tr> вот собственно что сделал я скрытый текст Выделить код Код:var macro; macro = "CODE:"; macro += "TAG POS=1 TYPE=TR ATTR=data-server:9792&&data-side:52&&data-online:1 EXTRACT=TXT " + "\n"; macro += "SAVEAS TYPE=EXTRACT FOLDER=D:\\Macros\\test FILE=+_{{!NOW:yyyymmdd_hhnnss}}" + "\n"; iimPlay(macro) и получил ответ в виде вот такого csv скрытый текст Но мне не нужен весь этот текст, а только цена 9.96 (даже без символа ₽) Я прекрасно понимаю что достал не самую маленькую цену как мне надо, а просто цену и кучу мусора с TAG POS=1 которые попали под мои 3 критерия, но так как сортировка на сайте у меня стояла от дешевого к дорогому, эта цена получается самая низкая, мне очень любопытно посмотреть как правильно решать мою задачу, может не стоит тащить весь этот мусор? ATTR=data-server:9792&&data-side:52&&data-online:1 EXTRACT=TXT ?? может надо просто проверить его наличие? или же вытащить цену с этим мусором, а потом его как-то отрезать? Или же обьявить переменные и как-то сверять их с этим ATTR=data-server:9792&&data-side:52&&data-online ? если все верно то вытаскивать data-s (тоесть цену) вообщем в моей голове появилось несколько вариантов решения моей же задачи, но вот только инструментов для ее реализации там пока недостаточно( буду признателен тому кто направит на путь истинный... |
Squatter > 15-09-2019 01:58:12 |
Потратьте полчаса на изучение селекторов скрытый текст и сможете извлекать всё что угодно методами querySelector и querySelectorAll Знакомьтесь с методом getAttribute() для извлечения значений атрибутов Вот ваши параметры по отдельности скрытый текст Выделить код Код:var node = window.document.querySelector('tr[data-href]'); var data_server = node.getAttribute('data-server'); var data_side = node.getAttribute('data-side'); var data_online = node.getAttribute('data-online'); // Значение цены var price = node.querySelector('.text-right>div').textContent; // Смотрим в консоль по ctrl + shift + k window.console.log(data_server); window.console.log(data_side); window.console.log(data_online); window.console.log(price); // Значение цены без лишнего символа window.console.log(price.match(/[0-9.]+/)[0]); Чтобы фильтровать ненужные символы и извлекать из текста необходимое, изучайте регулярные выражения скрытый текст Войдите или зарегистрируйтесь, чтобы увидеть скрытый текст. |
gødmøde > 15-09-2019 12:48:06 |
спасибо за отклик, вы значительно подвинули меня к конечной цели) скрытый текст Выделить код Код:var node = window.document.querySelector('tr[data-href]'); var data_server = node.getAttribute('data-server'); var data_side = node.getAttribute('data-side'); var data_online = node.getAttribute('data-online'); var price = node.querySelector('.text-right>div').textContent; if(data_server==3194&&data_side==52&&data_online==1){ //проверяю чтобы все совпадало window.console.log(price.match(/[0-9.]+/)[0]);} //вывожу цену если все ок по моим критериям else{ тут если не совпадает, хочу сказать чтобы скрипт проверял дальше, следующий var node, как это правильно писать? что почитать на эту тему? } |
Squatter > 15-09-2019 21:23:56 |
Используйте циклы скрытый текст Войдите или зарегистрируйтесь, чтобы увидеть скрытый текст. Если у вас все ноды tr[data-href] на одной странице, то собираете их в один массивоподобный объект методом querySelectorAll Потом перебираете в цикле со своим условием скрытый текст Выделить код Код:var nodes = window.document.querySelectorAll('tr[data-href]'); for (i=0;i<nodes.length;i++) { var node = nodes[i]; var data_server = node.getAttribute('data-server'); var data_side = node.getAttribute('data-side'); var data_online = node.getAttribute('data-online'); var price = node.querySelector('.text-right>div').textContent; if(data_server==3194&&data_side==52&&data_online==1)//проверяю чтобы все совпадало window.console.log(price.match(/[0-9.]+/)[0]); //вывожу цену если все ок по моим критериям } Примеров работы с циклами на формуме масса. |
gødmøde > 15-09-2019 23:49:59 |
хотелось бы извлечь лишь самую дешевую цену, а не все, чтобы потом попробовать запилить проверку по нику "не принадлежит ли эта самая дешевая цена - мне" если цена моя, то обновляем страницу и поновой чекаем, ну а если цена не моя, а "ProdavecVasia" то там уже совсем другая история) туда пока еще я не дошел скрытый текст Выделить код Код:var macro; macro = "CODE:"; var nodes = window.document.querySelectorAll('tr[data-href]'); for (i=0;i<nodes.length;i++) { var node = nodes[i]; var data_server = node.getAttribute('data-server'); var data_side = node.getAttribute('data-side'); var data_online = node.getAttribute('data-online'); var name = node.querySelector('a').textContent; var m_name = "godmode"; var price = node.querySelector('.text-right>div').textContent; if(data_server==3194&&data_side==52&&data_online==1&&name!=godmode)//проверяю чтобы все совпадало window.console.log(price.match(/[0-9.]+/)[0]); } когда хотел сделать проверку по нику, не является ли он моим, на эту строку начало ругаться на скрытый текст
как правильно получить результат = самая низкая цена: как-то отрезать все что после первой строки с помощью регулярных выражений? или это можно как-то в циклах указать? чтобы после первой занесенной успешно (самой дешевой цены) остальное не чекать/сохранять в переменную price |
InfSub > 15-09-2019 23:58:56 |
gødmøde gødmøde пишет
вам же русским языком написано, нет такой переменной в вашем скрипте, если вы сверяете значение переменной name с текстом, текст обрамляется кавычками gødmøde пишет
для сравнения значений, извлеките их в массив и отсортируйте: скрытый текст Войдите или зарегистрируйтесь, чтобы увидеть скрытый текст. gødmøde пишет
как вы себе представляете возможность не проверяя все числа (цены) - понять, что эта самая низкая? |
gødmøde > 16-09-2019 00:43:20 |
про кавычки вы правильно подметили, просто в этом коде, такой ошибки нету даже без кавычек скрытый текст Выделить код Код:var macro; macro = "CODE:"; var node = window.document.querySelector('tr[data-href]'); var data_server = node.getAttribute('data-server'); var data_side = node.getAttribute('data-side'); var data_online = node.getAttribute('data-online'); var name = node.querySelector('a').textContent; var price = node.querySelector('.text-right>div').textContent; if(data_server==3194&&data_side==52&&data_online==1&&name!=godmode){ window.console.log(price.match(/[0-9.]+/)[0]); } по поводу проверки всех чисел чтобы понять какая из них самая низкая : дело в том что самое первое занесенное число оно всегда самое низкое, потому что сортировка стоит на сайте от большего к меньшему) |
InfSub > 16-09-2019 00:54:48 |
gødmøde пишет
значит парсер не добрался до этой строки из-за несовпадения условий ранее gødmøde пишет
и в чем проблема тогда извлечь цену из скрытый текст например так: скрытый текст |
gødmøde > 16-09-2019 01:06:44 |
я с js как и с программированием в общем знаком 2 дня скрытый текст ну дело в том что мне не просто нужно получить самую верхнюю цену, а чтобы эта цена соответствовала моим критериям 1 data-server=9792 2 data-side=52 3 data-online=1 ну за подсказку с массивом - спасибо, буду дерзать |
InfSub > 16-09-2019 01:17:29 |
исходя из вашего кода думаю что тут правильнее было бы написать name!=m_name gødmøde пишет
ну так вы ее получаете судя по коду: скрытый текст Выделить код Код:if(data_server==3194&&data_side==52&&data_online==1&&name!=godmode){ window.console.log(price.match(/[0-9.]+/)[0]); } только она у вас выводится в консоль напишите скрытый текст вместо window.console.log если не умеете пользоваться консолью если все верно, то в дальнейшем просто замените скрытый текст на скрытый текст где small_price - переменная с минимальной ценой 16-09-2019 01:23:12 скрытый текст вы получите верную самую низкую цену и вопрос собственно только в выходе из цикла? если да, то после: скрытый текст пишите break; |
gødmøde > 16-09-2019 01:27:38 |
консолью я пользуюсь) скрытый текст Выделить код Код:var nodes = window.document.querySelectorAll('tr[data-href]'); for (i=0;i<nodes.length;i++) { var node = nodes[i]; var data_server = node.getAttribute('data-server'); var data_side = node.getAttribute('data-side'); var data_online = node.getAttribute('data-online'); var name = node.querySelector('a').textContent; var m_name = "godmode"; var price = node.querySelector('.text-right>div').textContent; if(data_server==3194&&data_side==52&&data_online==1&&name!=m_name)//проверяю чтобы все совпадало window.console.log(price.match(/[0-9.]+/)[0]); } я получаю вот такой вот список цен в консоль скрытый текст |
InfSub > 16-09-2019 01:34:29 |
gødmøde пишет
на сколько я понимаю, вам нужно остановить цикл сразу после 1й цены равной в данном случае 10.00 |
gødmøde > 16-09-2019 01:43:01 |
написал break; как вы сказали, теперь консоль пустая совсем скрытый текст Выделить код Код:var nodes = window.document.querySelectorAll('tr[data-href]'); for (i=0;i<nodes.length;i++) { var node = nodes[i]; var data_server = node.getAttribute('data-server'); var data_side = node.getAttribute('data-side'); var data_online = node.getAttribute('data-online'); var name = node.querySelector('a').textContent; var m_name = "godmode"; var price = node.querySelector('.text-right>div').textContent; if(data_server==3194&&data_side==52&&data_online==1&&name!=m_name)//проверяю чтобы все совпадало window.console.log(price.match(/[0-9.]+/)[0]); break; } мне кажется цикл проверил первый href, там не нашел ничего из того что мне подходит и свернулся break; |
InfSub > 16-09-2019 01:50:33 |
gødmøde скрытый текст Выделить код Код:if(data_server==3194&&data_side==52&&data_online==1&&name!=m_name){//проверяю чтобы все совпадало window.console.log(price.match(/[0-9.]+/)[0]); break; }; 16-09-2019 01:54:07 синтаксис if(...): Войдите или зарегистрируйтесь, чтобы увидеть скрытый текст. |
gødmøde > 16-09-2019 02:01:45 |
вот так заработало, спасибо! |
Squatter > 16-09-2019 02:27:37 |
gødmøde пишет
Вы плохо ознакомились с предложенными мануалами. Пишете селекторы атрибутов без пробелов, чтобы получить только ноды соответствующие значениям data-server="9792", data-side="52" и data-online="1" Собираете в массив все цены из полученных нод и находите минималную цену скрытый текст Выделить код Код:var nodes = window.document.querySelectorAll('[data-server="9792"][data-side="52"][data-online="1"]'); var arr = []; for (i=0;i<nodes.length;i++) { var price = nodes[i].querySelector('.text-right>div').textContent; // Собираем в массив "arr" значения преобразованные к числу arr.push(+price.match(/[0-9.]+/)[0]); } // Отфильтровываем из массива "arr" минимальное число var min_price = Math.min.apply(Math, arr); // Смотрим в консоль window.console.log(arr); window.console.log(min_price); |
gødmøde > 16-09-2019 18:07:43 |
дело в том что "я" уже написал вот такой код скрытый текст Выделить код Код://чекаю свою цену var nodes = window.document.querySelectorAll('tr[data-href]'); for (i=0;i<nodes.length;i++) { var node = nodes[i]; var data_server = node.getAttribute('data-server'); var data_side = node.getAttribute('data-side'); var data_online = node.getAttribute('data-online'); var name = node.querySelector('a').textContent; var m_name = "godmode"; var m_price = node.querySelector('.text-right>div').textContent.match(/[0-9.]+/)[0]; if(data_server==3194&&data_side==52&&data_online==1&&name==m_name){//проверка сервак, сторона, онлайн, мой ник window.console.log(m_price); //alert(m_price); break;} } //чекаю чужую самую низкую цену var nodes = window.document.querySelectorAll('tr[data-href]'); for (i=0;i<nodes.length;i++) { var node = nodes[i]; var data_server = node.getAttribute('data-server'); var data_side = node.getAttribute('data-side'); var data_online = node.getAttribute('data-online'); var name = node.querySelector('a').textContent; var m_name = "godmode"; var price = node.querySelector('.text-right>div').textContent.match(/[0-9.]+/)[0]; if(data_server==3194&&data_side==52&&data_online==1&&name!=m_name){//проверяю чтобы все совпадало window.console.log(price); break;} } //проверяю, если цена другого продавца ниже или = моей цене if(price <= m_price){ alert(price); } //проверяю, если моя цена меньше чем другого продавца else if(m_price < price){ alert(m_price); } ознакомился с вашим кодом с массивом, он выглядит более логичным, но дело в том что как оказалось мне еще потребуется проверка имени продавца, или идентификация себя по этому имени, для последующего сравнения цены своей, с минимальной ценой остальных если бы можно было бы вот так сделать начало последнего предложенного вами кода скрытый текст Выделить код Код:var name = "godmode"; var nodes = window.document.querySelectorAll('[data-server="9792"][data-side="52"][data-online="1"][a!=name]'); но походу это не так работает) что бы убедится что цена не моя начал я проводить эксперименты над регулярными выражениями, ох и головоломка хочу в цифре 8.496434 оставить лишь 8.49 скрытый текст но мне говорят pricetax.match is not a function, что тут не хватает/подходит? какой функции? пытался менять регулярку на (/[0-9.]+/)[0] но в этой строке он отказывается ее выводить! |
Squatter > 17-09-2019 03:11:09 |
pricetax.match is not a function потому что pricetax у вас это уже число а не строка. Метод match() работает со строками а не числами скрытый текст Выделить код Код:var pricetax = "8.496434";// Сейчас строка window.console.log(pricetax.match(/\d+\.\d{2}/)[0]); // Или преобразуем число в строку с помощью метода String() var pricetax = 8.496434;// Сейчас число window.console.log(String(pricetax).match(/\d+\.\d{2}/)[0]); Читайте о типе данных в JS и о преобразовании типов скрытый текст Войдите или зарегистрируйтесь, чтобы увидеть скрытый текст. gødmøde пишет
Одним циклом всё это сортируете по условию в объект, а потом сравниваете. |
gødmøde > 17-09-2019 14:37:12 |
большое спасибо за предыдущую помощь, не могли бы вы мне еще объяснить как определить правильно форму? скрытый текст Выделить код Код:<input class="form-control price" name="offers[3230][52][price]" value="102.25" autocomplete="off" type="text"> я уже перечитал все гайды, в поиске подобного образца, ну не укладывается в моей голове, хочется понять логику раз и навсегда, а не брутить разные варианты "авось щас заработает!" в этот раз я собраллся найти графу value = которая принадлежит offers[3230][52][price] и заполнить ее по своему желанию скрытый текст Выделить код Код:document.getElementsByName('offers[3230][52][price]').value = 25252; document.getElementsByClassName("offers[3199][54][price]")[0].value="43434"; ну естественно как и всегда, ничего не произошло) |
gødmøde > 17-09-2019 23:12:24 |
еще вот так пробовал, не непомогло скрытый текст Выделить код Код:window.document.getElementsByClassName('input[name=offers[3199][54][price]]').value="TEXT"; потом нашел на форуме инфу что можно через window.document.querySelector и сделал так скрытый текст но результат прежний( |
Squatter > 17-09-2019 23:50:19 |
Не гадайте. Потратьте 30 минут на изучение селекторов скрытый текст Ссылки вам уже выше дал и примеров масса. |
gødmøde > 18-09-2019 14:16:19 |
опять здравствуйте) не могли бы вы мне объяснить как происходит такая магия: скрытый текст Выделить код Код:var cop = (0.01);// 1 копейка var cop2 = (0.02); var verh = (m_price+cop2);// верхний упор (моя цена +2 коп) var pricetax = (price*tax); var pricelast = (pricetax-cop);//конечная цена -1 копейка window.console.log(+pricetax +"-1 копейка = " +pricelast); //проверил как работает отнимание 1 копейки window.console.log(+m_price +" + " +cop2 +" = " +verh); //проверяю как работает прибавление 2 копеек две абсолютно аналогичные ситуации, но одна отнимает (правильно), а вторая прибавляет(не совсем правильно) вот что выдал лог 7.899893999999999-1 копейка = 7.889893999999999 9.14 + 0.02 = 9.140.02 ну я примерно подозреваю что код думает что я пытаюсь сложить квадратное с холодным, но почему отнимание тогда работает как надо?? |
Squatter > 18-09-2019 15:12:54 |
Выше ссылку давал о типе данных и преобразовании типов. Читайте до понимания. Вам уже объяснил аналогичную вашу ошибку скрытый текст Как об стенку горох… |
gødmøde > 18-09-2019 16:37:10 |
да это я понял, я уже исправил это вот так скрытый текст Выделить код Код:var m_price = Number(node.querySelector('.text-right>div').textContent.match(/[0-9.]+/)[0]); но понять почему с отниманием все в порядке не могу ведь я оба значения парсил одинаково, с тем лишь отличием что одна из цен принадлежит мне, а другая кому-то скрытый текст Выделить код Код:var m_price = (node.querySelector('.text-right>div').textContent.match(/[0-9.]+/)[0]); //идентифицирую свою цену по собственному нику if(data_server==3194&&data_side==52&&name==m_name) и доставал цену продавца var price = node.querySelector('.text-right>div').textContent.match(/[0-9.]+/)[0]; if(data_server==3194&&data_side==52&&data_online==1&&name!=m_name){ но почему в конечном результате могло случится так что у них оказались разные типы?(дико извиняюсь если эти вопросы вам покажутся глупыми!) И есчо: сегодня я для себя открыл такую новинку как GET запрос, и очумел когда увидел скорость работы своего скрипта на нём, это быстрее раза в 4 точно. |
InfSub > 19-09-2019 02:27:25 |
gødmøde пишет
вычитанием, ну хоть пишите-то по русски, отнимают деньги в темном переулке символ "+" это не только сложение чисел, это также конкатенация строк, в случае если с одной стороны строка (а со страницы сайта вы получаете именно строку), а с другой число, при использовании "+" вы получите не сложение, а конкатенацию строк 19-09-2019 02:30:22 gødmøde пишет
отправьте, если на стороне сайта нет каких-то ограничений или доп проверок, то скорее всего работать будет, но скорее всего будет не через GET а через POST |
gødmøde > 19-09-2019 17:58:34 |
подскажите пожалуйста как это примерно должно выглядеть, я примеров не нашел похожих скрытый текст Выделить код Код:var XMLHttpRequest=Components.Constructor("@mozilla.org/xmlextras/xmlhttprequest;1"); var b=XMLHttpRequest(); b.open('GET','https://тутURL/chips/118/trade',false); b.send(''); var body = b.responseText; content.document.querySelector('body').innerHTML = body; iimPlayCode('WAIT SECONDS=0.1'); window.document.querySelector('[name="offers[3194][52][price]"]').value=pricelast; iimPlayCode('WAIT SECONDS=0.1'); window.document.querySelector('[type="submit"]').click(); я захотел вручную подсмотреть что происходит в момент нажатия кнопки "сохранить" с введенной новой ценой в форму, что бы иметь представление как это должно выглядеть, и какие данные в каком виде отправляются на одном из сайтов посоветовали "Chrome -> F12 -> Вкладка Network -> Выбираете нужный файл -> Во вкладке Headers ищите строку Form Data" скрытый текст ну я подобного нигде не нашел в браузере хроме/firefox dev'e а вот скрин всех событий после отправки формы скрытый текст |
Squatter > 19-09-2019 18:08:27 |
В Firefox Ctrl + Shift + E или F12 -> вкладка "Сеть" |
gødmøde > 19-09-2019 18:12:46 |
Squatter пишет
дело в том что я не нашел в своем запросе "trade" данные которые отвечают за изменение цены |
Squatter > 19-09-2019 18:20:56 |
Вы вначале запрос найдите, который идёт на сервер при изменении цены. |
gødmøde > 19-09-2019 18:50:37 |
после изменения цены прилетел вот этот XHR (который GET прилетел через ~секунду, кторый POST через ~10 ) скрытый текст вот содержание первого скрытый текст |
Squatter > 19-09-2019 19:39:12 |
Это только заголовки. Содержимое в "Params". |
gødmøde > 19-09-2019 20:14:16 |
в первом было написано "No parameters for this request" скрытый текст Выделить код Код:objects: [{"type":"orders_counters","id":"97115","tag":"5l1wel5t","data":false},{"type":"chat_counter","id":"97115","tag":"pw47f3m8","data":false}] request: false csrf_token: l5tl961n7xlrlikj но что-то меня смущает что второй прилетел через 10-15 сек после полной загрузки страницы, по этому вполне возможно что "это не то" (мои домыслы) |
Squatter > 20-09-2019 03:40:01 |
Вы сами должны определить какие данные отправляются при взаимодействии со страницей и найти нужные запросы. |
gødmøde > 20-09-2019 12:24:14 |
да я уже вроде бы все запросы перебрал, если не трудно посмотрите сами, я вам ПМ написал данные для авторизации скрытый текст Но как его поймать за хвост? ведь он существует в консоли всего долю секунды, скрин я этот сделал с видеозаписи |
Squatter > 20-09-2019 13:36:14 |
В настройки инструментов разработчика зайдите и включите непрерывные логи "Enable persistent logs" скрытый текст |
gødmøde > 20-09-2019 14:27:46 |
в общем сервер отказывается принимать искусственно отправленный запрос(я никакие параметры его не менял, просто переотправил ранее отправленный запрос) выдает ошибку 403. "HTTP 403 Forbidden" указывает, что сервер понял запрос, но отказывается его авторизовать скрытый текст осталось мне только понять почему сервер отправленный запрос православным способом принимает за истинный, а в ручную - за не авторизованный (при абсолютно одинаковых запросах по содержанию) как он их отличает? и как соорудить такой запрос, что бы сервер не сомневался в том что я авторизованный |
Squatter > 20-09-2019 18:57:56 |
Ваприанты: Составляйте запрос вручную через конструктор XMLHttpRequest. |
gødmøde > 21-09-2019 12:34:45 |
Вот заголовки этого XHR скрытый текст а вот содержание, в разделе "параметры" выглядит вот так: скрытый текст и так далее в разделе "необработанные данные" вот так скрытый текст Выделить код Код:game=178&chip=118&options%5Bchip_min_sum%5D=100&offers%5B3199%5D%5B54%5D%5Bprice%5D=&offers%5B3199%5D%5B54%5D%5Bamount%5D=&offers%5B3199%5D%5B51%5D%5Bprice%5D=&offers%5B3199%5D%5B51%5D%5Bamount%5D=&offers%5B3199%5D%5B52%5D%5Bprice%5D=&offers%5B3199%5D%5B52%5D%5Bamount%5D=&offers%5B3209%5D%5B51%5D%5Bprice%5D=&offers%5B3209%5D%5B51%5D%5Bamount%5D=&offers%5B3209%5D%5B52%5D%5Bprice%5D=&offers%5B3209%5D%5B52%5D%5Bamount%5D=&offers%5B3230%5D%5B51%5D%5Bprice%5D=&offers%5B3230%5D%5B51%5D%5Bamount%5D=&offers%5B3230%5D%5B52%5D%5Bprice%5D=&offers%5B3230%5D%5B52%5D%5Bamount%5D=&offers%5B3186%5D%5B51%5D%5Bprice%5D=&offers%5B3186%5D%5B51%5D%5Bamount%5D=&offers%5B3186%5D%5B52%5D%5Bprice%5D=&offers%5B3186%5D%5B52%5D%5Bamount%5D=&offers%5B3256%5D%5B51%5D%5Bprice%5D=&offers%5B3256%5D%5B51%5D%5Bamount%5D=&offers%5B3256%5D%5B52%5D%5Bprice%5D=&offers%5B3256%5D%5B52%5D%5Bamount%5D=&offers%5B3278%5D%5B51%5D%5Bprice%5D=&offers%5B3278%5D%5B51%5D%5Bamount%5D=&offers%5B3278%5D%5B52%5D%5Bprice%5D=&offers%5B3278%5D%5B52%5D%5Bamount%5D=&offers%5B3213%5D%5B51%5D%5Bprice%5D=&offers%5B3213%5D%5B51%5D%5Bamount%5D=&offers%5B3213%5D%5B52%5D%5Bprice%5D=&offers%5B3213%5D%5B52%5D%5Bamount%5D=&offers%5B3229%5D%5B51%5D%5Bprice%5D=&offers%5B3229%5D%5B51%5D%5Bamount%5D=&offers%5B3229%5D%5B52%5D%5Bprice%5D=&offers%5B3229%5D%5B52%5D%5Bamount%5D=&offers%5B3279%5D%5B51%5D%5Bprice%5D=&offers%5B3279%5D%5B51%5D%5Bamount%5D=&offers%5B3279%5D%5B52%5D%5Bprice%5D=&offers%5B3279%5D%5B52%5D%5Bamount%5D=&offers%5B3187%5D%5B51%5D%5Bprice%5D=&offers%5B3187%5D%5B51%5D%5Bamount%5D=&offers%5B3187%5D%5B52%5D%5Bprice%5D=&offers%5B3187%5D%5B52%5D%5Bamount%5D=&offers%5B3231%5D%5B51%5D%5Bprice%5D=&offers%5B3231%5D%5B51%5D%5Bamount%5D=&offers%5B3231%5D%5B52%5D%5Bprice%5D=&offers%5B3231%5D%5B52%5D%5Bamount%5D=&offers%5B3200%5D%5B51%5D%5Bprice%5D=&offers%5B3200%5D%5B51%5D%5Bamount%5D=&offers%5B3200%5D%5B52%5D%5Bprice%5D=&offers%5B3200%5D%5B52%5D%5Bamount%5D=&offers%5B3201%5D%5B51%5D%5Bprice%5D=&offers%5B3201%5D%5B51%5D%5Bamount%5D=&offers%5B3201%5D%5B52%5D%5Bprice%5D=&offers%5B3201%5D%5B52%5D%5Bamount%5D=&offers%5B3202%5D%5B51%5D%5Bprice%5D=&offers%5B3202%5D%5B51%5D%5Bamount%5D=&offers%5B3202%5D%5B52%5D%5Bprice%5D=&offers%5B3202%5D%5B52%5D%5Bamount%5D=&offers%5B3188%5D%5B51%5D%5Bprice%5D=&offers%5B3188%5D%5B51%5D%5Bamount%5D=&offers%5B3188%5D%5B52%5D%5Bprice%5D=&offers%5B3188%5D%5B52%5D%5Bamount%5D=&offers%5B3189%5D%5B51%5D%5Bprice%5D=&offers%5B3189%5D%5B51%5D%5Bamount%5D=&offers%5B3189%5D%5B52%5D%5Bprice%5D=&offers%5B3189%5D%5B52%5D%5Bamount%5D=&offers%5B3190%5D%5B51%5D%5Bprice%5D=&offers%5B3190%5D%5B51%5D%5Bamount%5D=&offers%5B3190%5D%5B52%5D%5Bprice%5D=&offers%5B3190%5D%5B52%5D%5Bamount%5D=&offers%5B3257%5D%5B51%5D%5Bprice%5D=&offers%5B3257%5D%5B51%5D%5Bamount%5D=&offers%5B3257%5D%5B52%5D%5Bprice%5D=&offers%5B3257%5D%5B52%5D%5Bamount%5D=&offers%5B3232%5D%5B51%5D%5Bprice%5D=&offers%5B3232%5D%5B51%5D%5Bamount%5D=&offers%5B3232%5D%5B52%5D%5Bprice%5D=&offers%5B3232%5D%5B52%5D%5Bamount%5D=&offers%5B3191%5D%5B51%5D%5Bprice%5D=&offers%5B3191%5D%5B51%5D%5Bamount%5D=&offers%5B3191%5D%5B52%5D%5Bprice%5D=&offers%5B3191%5D%5B52%5D%5Bamount%5D=&offers%5B3192%5D%5B51%5D%5Bprice%5D=&offers%5B3192%5D%5B51%5D%5Bamount%5D=&offers%5B3192%5D%5B52%5D%5Bprice%5D=&offers%5B3192%5D%5B52%5D%5Bamount%5D=&offers%5B3203%5D%5B51%5D%5Bprice%5D=&offers%5B3203%5D%5B51%5D%5Bamount%5D=&offers%5B3203%5D%5B52%5D%5Bprice%5D=&offers%5B3203%5D%5B52%5D%5Bamount%5D=&offers%5B3204%5D%5B51%5D%5Bprice%5D=&offers%5B3204%5D%5B51%5D%5Bamount%5D=&offers%5B3204%5D%5B52%5D%5Bprice%5D=&offers%5B3204%5D%5B52%5D%5Bamount%5D=&offers%5B3210%5D%5B51%5D%5Bprice%5D=&offers%5B3210%5D%5B51%5D%5Bamount%5D=&offers%5B3210%5D%5B52%5D%5Bprice%5D=&offers%5B3210%5D%5B52%5D%5Bamount%5D=&offers%5B3214%5D%5B51%5D%5Bprice%5D=&offers%5B3214%5D%5B51%5D%5Bamount%5D=&offers%5B3214%5D%5B52%5D%5Bprice%5D=&offers%5B3214%5D%5B52%5D%5Bamount%5D=&offers%5B3193%5D%5B51%5D%5Bprice%5D=&offers%5B3193%5D%5B51%5D%5Bamount%5D=&offers%5B3193%5D%5B52%5D%5Bprice%5D=&offers%5B3193%5D%5B52%5D%5Bamount%5D=&offers%5B3206%5D%5B51%5D%5Bprice%5D=&offers%5B3206%5D%5B51%5D%5Bamount%5D=&offers%5B3206%5D%5B52%5D%5Bprice%5D=&offers%5B3206%5D%5B52%5D%5Bamount%5D=&offers%5B3205%5D%5B51%5D%5Bprice%5D=&offers%5B3205%5D%5B51%5D%5Bamount%5D=&offers%5B3205%5D%5B52%5D%5Bprice%5D=&offers%5B3205%5D%5B52%5D%5Bamount%5D=&offers%5B3194%5D%5B51%5D%5Bprice%5D=&offers%5B3194%5D%5B51%5D%5Bamount%5D=&offers%5B3194%5D%5B52%5D%5Bprice%5D=333&offers%5B3194%5D%5B52%5D%5Bamount%5D=22&offers%5B3235%5D%5B51%5D%5Bprice%5D=&offers%5B3235%5D%5B51%5D%5Bamount%5D=&offers%5B3235%5D%5B52%5D%5Bprice%5D=&offers%5B3235%5D%5B52%5D%5Bamount%5D=&offers%5B3211%5D%5B51%5D%5Bprice%5D=&offers%5B3211%5D%5B51%5D%5Bamount%5D=&offers%5B3211%5D%5B52%5D%5Bprice%5D=&offers%5B3211%5D%5B52%5D%5Bamount%5D=&offers%5B3195%5D%5B51%5D%5Bprice%5D=&offers%5B3195%5D%5B51%5D%5Bamount%5D=&offers%5B3195%5D%5B52%5D%5Bprice%5D=&offers%5B3195%5D%5B52%5D%5Bamount%5D=&offers%5B3234%5D%5B51%5D%5Bprice%5D=&offers%5B3234%5D%5B51%5D%5Bamount%5D=&offers%5B3234%5D%5B52%5D%5Bprice%5D=&offers%5B3234%5D%5B52%5D%5Bamount%5D=&offers%5B3233%5D%5B51%5D%5Bprice%5D=&offers%5B3233%5D%5B51%5D%5Bamount%5D=&offers%5B3233%5D%5B52%5D%5Bprice%5D=&offers%5B3233%5D%5B52%5D%5Bamount%5D=&offers%5B3207%5D%5B51%5D%5Bprice%5D=&offers%5B3207%5D%5B51%5D%5Bamount%5D=&offers%5B3207%5D%5B52%5D%5Bprice%5D=&offers%5B3207%5D%5B52%5D%5Bamount%5D=&offers%5B3196%5D%5B51%5D%5Bprice%5D=&offers%5B3196%5D%5B51%5D%5Bamount%5D=&offers%5B3196%5D%5B52%5D%5Bprice%5D=&offers%5B3196%5D%5B52%5D%5Bamount%5D= вот что я попытался отправить: скрытый текст Выделить код Код:var http = new XMLHttpRequest(); var url = 'https://тутURL/chips/saveOffers'; var params = 'game=178&chip=118&options%5Bchip_min_sum%5D=100&offers%5B3199%5D%5B54%5D%5Bprice%5D=&offers%5B3199%5D%5B54%5D%5Bamount%5D=&offers%5B3199%5D%5B51%5D%5Bprice%5D=&offers%5B3199%5D%5B51%5D%5Bamount%5D=&offers%5B3199%5D%5B52%5D%5Bprice%5D=&offers%5B3199%5D%5B52%5D%5Bamount%5D=&offers%5B3209%5D%5B51%5D%5Bprice%5D=&offers%5B3209%5D%5B51%5D%5Bamount%5D=&offers%5B3209%5D%5B52%5D%5Bprice%5D=&offers%5B3209%5D%5B52%5D%5Bamount%5D=&offers%5B3230%5D%5B51%5D%5Bprice%5D=&offers%5B3230%5D%5B51%5D%5Bamount%5D=&offers%5B3230%5D%5B52%5D%5Bprice%5D=&offers%5B3230%5D%5B52%5D%5Bamount%5D=&offers%5B3186%5D%5B51%5D%5Bprice%5D=&offers%5B3186%5D%5B51%5D%5Bamount%5D=&offers%5B3186%5D%5B52%5D%5Bprice%5D=&offers%5B3186%5D%5B52%5D%5Bamount%5D=&offers%5B3256%5D%5B51%5D%5Bprice%5D=&offers%5B3256%5D%5B51%5D%5Bamount%5D=&offers%5B3256%5D%5B52%5D%5Bprice%5D=&offers%5B3256%5D%5B52%5D%5Bamount%5D=&offers%5B3278%5D%5B51%5D%5Bprice%5D=&offers%5B3278%5D%5B51%5D%5Bamount%5D=&offers%5B3278%5D%5B52%5D%5Bprice%5D=&offers%5B3278%5D%5B52%5D%5Bamount%5D=&offers%5B3213%5D%5B51%5D%5Bprice%5D=&offers%5B3213%5D%5B51%5D%5Bamount%5D=&offers%5B3213%5D%5B52%5D%5Bprice%5D=&offers%5B3213%5D%5B52%5D%5Bamount%5D=&offers%5B3229%5D%5B51%5D%5Bprice%5D=&offers%5B3229%5D%5B51%5D%5Bamount%5D=&offers%5B3229%5D%5B52%5D%5Bprice%5D=&offers%5B3229%5D%5B52%5D%5Bamount%5D=&offers%5B3279%5D%5B51%5D%5Bprice%5D=&offers%5B3279%5D%5B51%5D%5Bamount%5D=&offers%5B3279%5D%5B52%5D%5Bprice%5D=&offers%5B3279%5D%5B52%5D%5Bamount%5D=&offers%5B3187%5D%5B51%5D%5Bprice%5D=&offers%5B3187%5D%5B51%5D%5Bamount%5D=&offers%5B3187%5D%5B52%5D%5Bprice%5D=&offers%5B3187%5D%5B52%5D%5Bamount%5D=&offers%5B3231%5D%5B51%5D%5Bprice%5D=&offers%5B3231%5D%5B51%5D%5Bamount%5D=&offers%5B3231%5D%5B52%5D%5Bprice%5D=&offers%5B3231%5D%5B52%5D%5Bamount%5D=&offers%5B3200%5D%5B51%5D%5Bprice%5D=&offers%5B3200%5D%5B51%5D%5Bamount%5D=&offers%5B3200%5D%5B52%5D%5Bprice%5D=&offers%5B3200%5D%5B52%5D%5Bamount%5D=&offers%5B3201%5D%5B51%5D%5Bprice%5D=&offers%5B3201%5D%5B51%5D%5Bamount%5D=&offers%5B3201%5D%5B52%5D%5Bprice%5D=&offers%5B3201%5D%5B52%5D%5Bamount%5D=&offers%5B3202%5D%5B51%5D%5Bprice%5D=&offers%5B3202%5D%5B51%5D%5Bamount%5D=&offers%5B3202%5D%5B52%5D%5Bprice%5D=&offers%5B3202%5D%5B52%5D%5Bamount%5D=&offers%5B3188%5D%5B51%5D%5Bprice%5D=&offers%5B3188%5D%5B51%5D%5Bamount%5D=&offers%5B3188%5D%5B52%5D%5Bprice%5D=&offers%5B3188%5D%5B52%5D%5Bamount%5D=&offers%5B3189%5D%5B51%5D%5Bprice%5D=&offers%5B3189%5D%5B51%5D%5Bamount%5D=&offers%5B3189%5D%5B52%5D%5Bprice%5D=&offers%5B3189%5D%5B52%5D%5Bamount%5D=&offers%5B3190%5D%5B51%5D%5Bprice%5D=&offers%5B3190%5D%5B51%5D%5Bamount%5D=&offers%5B3190%5D%5B52%5D%5Bprice%5D=&offers%5B3190%5D%5B52%5D%5Bamount%5D=&offers%5B3257%5D%5B51%5D%5Bprice%5D=&offers%5B3257%5D%5B51%5D%5Bamount%5D=&offers%5B3257%5D%5B52%5D%5Bprice%5D=&offers%5B3257%5D%5B52%5D%5Bamount%5D=&offers%5B3232%5D%5B51%5D%5Bprice%5D=&offers%5B3232%5D%5B51%5D%5Bamount%5D=&offers%5B3232%5D%5B52%5D%5Bprice%5D=&offers%5B3232%5D%5B52%5D%5Bamount%5D=&offers%5B3191%5D%5B51%5D%5Bprice%5D=&offers%5B3191%5D%5B51%5D%5Bamount%5D=&offers%5B3191%5D%5B52%5D%5Bprice%5D=&offers%5B3191%5D%5B52%5D%5Bamount%5D=&offers%5B3192%5D%5B51%5D%5Bprice%5D=&offers%5B3192%5D%5B51%5D%5Bamount%5D=&offers%5B3192%5D%5B52%5D%5Bprice%5D=&offers%5B3192%5D%5B52%5D%5Bamount%5D=&offers%5B3203%5D%5B51%5D%5Bprice%5D=&offers%5B3203%5D%5B51%5D%5Bamount%5D=&offers%5B3203%5D%5B52%5D%5Bprice%5D=&offers%5B3203%5D%5B52%5D%5Bamount%5D=&offers%5B3204%5D%5B51%5D%5Bprice%5D=&offers%5B3204%5D%5B51%5D%5Bamount%5D=&offers%5B3204%5D%5B52%5D%5Bprice%5D=&offers%5B3204%5D%5B52%5D%5Bamount%5D=&offers%5B3210%5D%5B51%5D%5Bprice%5D=&offers%5B3210%5D%5B51%5D%5Bamount%5D=&offers%5B3210%5D%5B52%5D%5Bprice%5D=&offers%5B3210%5D%5B52%5D%5Bamount%5D=&offers%5B3214%5D%5B51%5D%5Bprice%5D=&offers%5B3214%5D%5B51%5D%5Bamount%5D=&offers%5B3214%5D%5B52%5D%5Bprice%5D=&offers%5B3214%5D%5B52%5D%5Bamount%5D=&offers%5B3193%5D%5B51%5D%5Bprice%5D=&offers%5B3193%5D%5B51%5D%5Bamount%5D=&offers%5B3193%5D%5B52%5D%5Bprice%5D=&offers%5B3193%5D%5B52%5D%5Bamount%5D=&offers%5B3206%5D%5B51%5D%5Bprice%5D=&offers%5B3206%5D%5B51%5D%5Bamount%5D=&offers%5B3206%5D%5B52%5D%5Bprice%5D=&offers%5B3206%5D%5B52%5D%5Bamount%5D=&offers%5B3205%5D%5B51%5D%5Bprice%5D=&offers%5B3205%5D%5B51%5D%5Bamount%5D=&offers%5B3205%5D%5B52%5D%5Bprice%5D=&offers%5B3205%5D%5B52%5D%5Bamount%5D=&offers%5B3194%5D%5B51%5D%5Bprice%5D=&offers%5B3194%5D%5B51%5D%5Bamount%5D=&offers%5B3194%5D%5B52%5D%5Bprice%5D=7.694&offers%5B3194%5D%5B52%5D%5Bamount%5D=&offers%5B3235%5D%5B51%5D%5Bprice%5D=&offers%5B3235%5D%5B51%5D%5Bamount%5D=&offers%5B3235%5D%5B52%5D%5Bprice%5D=&offers%5B3235%5D%5B52%5D%5Bamount%5D=&offers%5B3211%5D%5B51%5D%5Bprice%5D=&offers%5B3211%5D%5B51%5D%5Bamount%5D=&offers%5B3211%5D%5B52%5D%5Bprice%5D=&offers%5B3211%5D%5B52%5D%5Bamount%5D=&offers%5B3195%5D%5B51%5D%5Bprice%5D=&offers%5B3195%5D%5B51%5D%5Bamount%5D=&offers%5B3195%5D%5B52%5D%5Bprice%5D=&offers%5B3195%5D%5B52%5D%5Bamount%5D=&offers%5B3234%5D%5B51%5D%5Bprice%5D=&offers%5B3234%5D%5B51%5D%5Bamount%5D=&offers%5B3234%5D%5B52%5D%5Bprice%5D=&offers%5B3234%5D%5B52%5D%5Bamount%5D=&offers%5B3233%5D%5B51%5D%5Bprice%5D=&offers%5B3233%5D%5B51%5D%5Bamount%5D=&offers%5B3233%5D%5B52%5D%5Bprice%5D=&offers%5B3233%5D%5B52%5D%5Bamount%5D=&offers%5B3207%5D%5B51%5D%5Bprice%5D=&offers%5B3207%5D%5B51%5D%5Bamount%5D=&offers%5B3207%5D%5B52%5D%5Bprice%5D=&offers%5B3207%5D%5B52%5D%5Bamount%5D=&offers%5B3196%5D%5B51%5D%5Bprice%5D=&offers%5B3196%5D%5B51%5D%5Bamount%5D=&offers%5B3196%5D%5B52%5D%5Bprice%5D=&offers%5B3196%5D%5B52%5D%5Bamount%5D='; http.open('POST', url, true); //Send the proper header information along with the request http.setRequestHeader('Content-type', 'application/x-www-form-urlencoded; charset=UTF-8'); http.onreadystatechange = function() { console.log(this.responseText); } http.send(params); и получил ответ (от браузера) ReferenceError: XMLHttpRequest is not defined, line 3 (Error code: -991) затем подумал я что что-то не хватает для работы XMLHttpRequest браузеру, но затем вспомнил что я же благополучно им пользуюсь в таком виде скрытый текст Выделить код Код:var b=XMLHttpRequest(); b.open('GET','https://тутURL/chips/118/trade',false); b.send(''); var body = b.responseText; но что ему тогда здесь мешает запуститься ? |
Squatter > 21-09-2019 18:28:04 |
Для отладки запроса скрытый текст В остальных случаях для работы запросов из макроса объявите вначале кода XMLHttpRequest скрытый текст Выделить код Код:var XMLHttpRequest = Components.Constructor("@mozilla.org/xmlextras/xmlhttprequest;1"); |
gødmøde > 22-09-2019 00:09:14 |
Спасибо, все работает чётко |
Squatter > 22-09-2019 12:06:33 |
И вам тоже дай бог здоровья (от агностика)! Но в любом случае для начала необходимо ознакомиться с основами javascript скрытый текст Основы: Войдите или зарегистрируйтесь, чтобы увидеть скрытый текст. И гуглить готовые примеры и рецепты на stackoverflow Войдите или зарегистрируйтесь, чтобы увидеть скрытый текст. Успехов! |