Форум программистов, компьютерный форум, киберфорум
Node.js
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
0 / 0 / 0
Регистрация: 21.07.2019
Сообщений: 9

Отслеживание значения переменной на стороннем сайте

21.07.2019, 22:09. Показов 1844. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день, мне нужно на одном сайте определять числовое значение переменной. То есть на странице есть текст в виде числа, и мне надо определять это число. Я посмотрел исходный код элемента, этот текст лежит в переменной b-product__purchase-price. И ее значение постоянно меняется. Как я могу это сделать на javascript? Я не знаток javascript, всю жизнь писал на С++, но в этот раз стоит вот такая задача. Можно ли это как-то через GET запрос определять или как вообще это можно сделать? Не судите, в веб разработке я чайник
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
21.07.2019, 22:09
Ответы с готовыми решениями:

Нажатие кнопки на стороннем сайте
Приветствую, можно ли написать скрипт, который каждую минуту нажимает на кнопку стороннего сайта? Поясняю: запускаю свой html файл, нажимаю...

Автозаполнение формы и ее отправка на стороннем сайте
Всем привет! Сразу говорю что гуглить пытался, но видимо руки не оттуда растут и не нашел ничего :) В чем идея. Есть форма которую...

Просмотр изображений, размещённых на стороннем сайте
При помощи document.images можно управлять всеми изображениями в документе. Необходимо организовать подобное управление, но ссылаясь на...

10
 Аватар для diadiavova
7258 / 2605 / 744
Регистрация: 11.04.2015
Сообщений: 4,149
Записей в блоге: 43
23.07.2019, 07:59
Цитата Сообщение от alexeygolenkov1 Посмотреть сообщение
Я посмотрел исходный код элемента, этот текст лежит в переменной b-product__purchase-price.
Исходный код элемента - это HTML и в нем нет никаких переменных. Если речь идет о переменной в скрипте, то в JavaScript не может быть переменной с таким именем.
Цитата Сообщение от alexeygolenkov1 Посмотреть сообщение
И ее значение постоянно меняется.
Что значит "постоянно"? В течение одной сессии или все-таки она (ну типа переменная) имеет разное значение при каждой загрузке страницы?
Цитата Сообщение от alexeygolenkov1 Посмотреть сообщение
Как я могу это сделать на javascript?
Это зависит от того, откуда будет запускаться этот яваскрипт. Из расширения что ли?
Цитата Сообщение от alexeygolenkov1 Посмотреть сообщение
Можно ли это как-то через GET запрос определять или как вообще это можно сделать?
Это опять-таки зависит от ответов на предыдущие вопросы. Если, например, под переменной ты имеешь в виду какой-нибудь HTML-элемент и при каждой загрузке страницы его содержимое меняется, то возможно достаточно загрузить текст этой страницы напрямую и вытащить из него нужный текст. Но бывает, что интересующее значение запихивается туда скриптом. В этом случае тоже бывают разные ситуации. Иногда значение приходит в данных содержащихся в самом скрипте и в этом случае его нужно поискать там и также вытаскивать доступными средствами обработки текста. Также оно может подгружаться с сервера, в этом случае нужно искать откуда оно подгружается и тогда уже запрос отправлять именно в это место. Более сложный вариант - значение может вычисляться, тогда придется изучать код, который его вычисляет, но такое делать приходится редко.
0
0 / 0 / 0
Регистрация: 21.07.2019
Сообщений: 9
23.07.2019, 11:15  [ТС]
Цитата Сообщение от diadiavova Посмотреть сообщение
Исходный код элемента - это HTML и в нем нет никаких переменных. Если речь идет о переменной в скрипте, то в JavaScript не может быть переменной с таким именем.
Да, я не правильно выразился. Это не переменная, а название класса.
Цитата Сообщение от diadiavova Посмотреть сообщение
Это опять-таки зависит от ответов на предыдущие вопросы. Если, например, под переменной ты имеешь в виду какой-нибудь HTML-элемент и при каждой загрузке страницы его содержимое меняется, то возможно достаточно загрузить текст этой страницы напрямую и вытащить из него нужный текст. Но бывает, что интересующее значение запихивается туда скриптом. В этом случае тоже бывают разные ситуации. Иногда значение приходит в данных содержащихся в самом скрипте и в этом случае его нужно поискать там и также вытаскивать доступными средствами обработки текста. Также оно может подгружаться с сервера, в этом случае нужно искать откуда оно подгружается и тогда уже запрос отправлять именно в это место. Более сложный вариант - значение может вычисляться, тогда придется изучать код, который его вычисляет, но такое делать приходится редко.
Я нашел такое решение. Нажимаю посмотреть исходный код элемента.
Перехожу на вкладку Network.
Выделяю XHR и ищу в каком файле в разделе preview находится нужная мне информация.
Когда нашел файл, захожу в раздел headers и смотрю Request url и Request method. В данном случае Request method = GET. Я отправляю GET-запрос на этот url, получаю ответ и начинаю парсить нужную мне информацию.
С этой темой я как-то разобрался. Но еще раз повторюсь, это мое первое приложение на javascript Удивлен как это у меня получилось, потому что веб разработкой никогда не занимался и только вчера узнал, что такое POST и GET запросы.

Теперь мне нужно научиться автоматически отправлять серверу запрос на нажатие кнопки. То есть есть кнопка "Купить", и я хочу ее нажимать не вручную, а чтобы это делала программа.
Я подумал, что это можно сделать примерно таким же способом. То есть найти файл, который отправляется на сервер во время нажатия кнопки.
Я нашел только один файл, в котором Request method = POST и подозреваю, что это именно то, что мне нужно. Надо как-то делать POST-запрос на url который там прописан, и передавать нужные параметры (в них я пока не разобрался).
Скажите, в правильном ли направлении я думаю? Можно ли таким способом решить поставленную задачу? Если нет, подскажите как это можно сделать.
Благодарю
0
 Аватар для diadiavova
7258 / 2605 / 744
Регистрация: 11.04.2015
Сообщений: 4,149
Записей в блоге: 43
23.07.2019, 12:08
Цитата Сообщение от alexeygolenkov1 Посмотреть сообщение
Скажите, в правильном ли направлении я думаю? Можно ли таким способом решить поставленную задачу? Если нет, подскажите как это можно сделать.
Еще раз повторю вопрос
Цитата Сообщение от diadiavova Посмотреть сообщение
откуда будет запускаться этот яваскрипт. Из расширения что ли?
Чтобы было совсем понятно о чем я спрашиваю: написал ты код и куда ты его засовываешь, чтобы он исполнился?

По поводу кнопок, запросов и прочего. Если твоя программа каким-то образом будет выполняться внутри браузера или использовать браузерный движок, то нажать кнопку программно - совсем несложно. Там просто надо найти ее и вызывать у нее метод click(). Если же ты сам формируешь запросы где-то в отдельной среде исполнения (node.js или еще что-то в этом роде), то в коде надо искать форму, которую отправляет кнопка, которую ты хочешь нажать. Обычно это выглядит как-то так
HTML5
1
2
3
4
<form method="POST" action="https://...">
 
    <input type="submit" value="Купить"/>
</form>
Разумеется помимо кнопки там есть масса других элементов, обычно те, что представляют интерес, имеют атрибудты name и value и их значения должны быть отправлены как параметры запроса. Но на практике все несколько сложнее, поскольку зачастую значения элементов инициируются скриптом и причем нередко непосредственно перед отправкой. Поэтому более простой и надежный способ - это отправить реальный запрос и отследить что именно было отправлено с помощью стороннего приложения (для винды можно использовать, например, Fiddler - Free Web Debugging Proxy - Telerik).
0
0 / 0 / 0
Регистрация: 21.07.2019
Сообщений: 9
23.07.2019, 21:18  [ТС]
Цитата Сообщение от diadiavova Посмотреть сообщение
Еще раз повторю вопрос
Чтобы было совсем понятно о чем я спрашиваю: написал ты код и куда ты его засовываешь, чтобы он исполнился?
Делаю через node.js
Мне нужно написать бота, который отслеживает цену товара, и если она опускается до какого-то (мной установленного) значения, он автоматически его покупает. С отслеживанием значения цены я уже разобрался.
Теперь осталось понять, как написать, чтобы он покупал товар.

Цитата Сообщение от diadiavova Посмотреть сообщение
Поэтому более простой и надежный способ - это отправить реальный запрос и отследить что именно было отправлено с помощью стороннего приложения (для винды можно использовать, например, Fiddler - Free Web Debugging Proxy - Telerik).
Попробовал, при нажатии и после нажатия ничего в этой программе не меняется. То есть до этого в нее поступают какие-то пакеты, а после - ничего не приходит.

У меня еще проблема с аутентификацией. На некоторые запросы сервер возвращает, что я не аутентифицирован. Подскажите, как это исправить? Я в начале программы должен сделать какой-то запрос на аутентификацию и потом отправлять любые запросы? Или же при каждом запросе я должен добавлять в них какие-то параметры (что то вроде логина и пароля), чтобы сервер понимал, что я аутентифицирован?
0
 Аватар для diadiavova
7258 / 2605 / 744
Регистрация: 11.04.2015
Сообщений: 4,149
Записей в блоге: 43
24.07.2019, 10:37
Цитата Сообщение от alexeygolenkov1 Посмотреть сообщение
Делаю через node.js
Ну вот с этого надо было начинать. Вопросы по нюансам работы с нодой задают здесь JavaScript: Node.js - Форум web-программистов - Киберфорум.
Цитата Сообщение от alexeygolenkov1 Посмотреть сообщение
Попробовал, при нажатии и после нажатия ничего в этой программе не меняется. То есть до этого в нее поступают какие-то пакеты, а после - ничего не приходит.
После установки/обновления программы открывается следующая страница Update Installed
Там есть ссылки на следующие темы:
  • Установка расширений
  • Конфигурирование для расшифровки HTTPS
  • Конфигурирование перехвата трафика для Windows8+
  • Просмотр траффика отправленного на локальный сервер
  • Короткие обучающие видео
Вот у меня что-то есть подозрение, что ты на это внимание-то и не обратил ))
Цитата Сообщение от alexeygolenkov1 Посмотреть сообщение
У меня еще проблема с аутентификацией. На некоторые запросы сервер возвращает, что я не аутентифицирован. Подскажите, как это исправить? Я в начале программы должен сделать какой-то запрос на аутентификацию и потом отправлять любые запросы? Или же при каждом запросе я должен добавлять в них какие-то параметры (что то вроде логина и пароля), чтобы сервер понимал, что я аутентифицирован?
Обычно при каждом запросе отправляются куки. Когда пользователь логинится сервер устанавливает куки и потом они отправляются при каждом запросе. Поэтому вопрос в том, как залогиниться. Самый простой вариант - это вытащить куки из браузера, есть для браузеров расширения, с помощью которых можно это сделать. Но если ты хочешь этот процесс воспроизвести программно, то сначала разберись с фиддлером или подобной программой, потом залогинься и посмотри что при этом происходило. Обычно процесс не так прост, поскольку подразумевает заход не несколько страниц, с которых осуществляются редиректы. Причем иногда редирект может быть выполнен с помощью заголовка Location, а иногда скрипт выполняется. Страницы которые приходят могут содержать заголовки Set-Cookie, в каждом таком заголовке содержится по одному куку и каждый надо установить. Если делать это вручную, то надо изучить как устроены эти заголовки и чем они отличаются от заголовка запроса Cookie, который потом все это будет отправлять на сервер. Но вполне возможно, что в ноде есть какой-нибудь удобный инструмент типа куки-контейнера, с помощью которого это можно будет сделать проще. Но об этом надо спрашивать в соответствующем разделе.
Если после этих объяснений захочешь вытащить куки из браузера, то обрати внимание на срок действия: на некоторых сайтах он достаточно большой и можно вытащить и не париться, на других нужно постоянно логиниться и там лучше все-таки как-то автоматизировать процесс.

ЗЫ
Да и еще. Я как-то пытался "оседлать" двухфакторную аутентификацию вконтакте. Помучился, конечно, но в конце концов все получилось, вечером я несколько раз ее использовал, а вот утром она уже не работала. Начал разбираться, оказалось что мне там гуглокапчу присылают. Проблему не решил, однако когда отключил на сайте двухфакторную аутентификацию все заработало и даже не пришлось переписывать код, поскольку первая фаза совпадала в обоих случаях.
В любом случае ты отправляешься в увлекательное путешествие ))
0
0 / 0 / 0
Регистрация: 21.07.2019
Сообщений: 9
24.07.2019, 18:44  [ТС]
Скиньте пожалуйста код для аутентификации в вк. Или шаблончик какой-нибудь. Может на нём я что-нибудь пойму. Я не знаю где искать инфу по моему вопросы))
Еще хотел бы с Вами связаться не на форуме, а где-нибудь в вк. Но, кажется, правилами форума запрещено как-либо обмениваться информацией, если я не ошибаюсь.
0
 Аватар для diadiavova
7258 / 2605 / 744
Регистрация: 11.04.2015
Сообщений: 4,149
Записей в блоге: 43
24.07.2019, 21:37
Цитата Сообщение от alexeygolenkov1 Посмотреть сообщение
Скиньте пожалуйста код для аутентификации в вк.
Я, конечно, могу его выковырять из проекта, только вряд ли это что-то даст. Во-первых, он написан на языке F# под платформу .Net Core. Во-вторых, даже если ты знаком и с языком и с используемыми апи, без пояснений там будет сложно разобраться, а переписать это напрямую под ноду тоже вряд ли получится.
Цитата Сообщение от alexeygolenkov1 Посмотреть сообщение
Или шаблончик какой-нибудь. Может на нём я что-нибудь пойму. Я не знаю где искать инфу по моему вопросы))
Универсального шаблончика скорей всего нет. На примере вконтактика мне пришлось что-то около пяти запросов отправлять. Кое где автоматический редирект, на других страницах извлекаются какие-то данные, с помощью которых строятся параметры следующего запроса, где-то данные извлекаются не из самой страницы, а с помощью аякс-запроса, где-то редирект может выполняться не с помощью заголовка, а с помощью скрипта. Кроме того, на странице могут содержаться какие-то данные, которые иногда тоже надо читать, например сообщение о том, что был введен неверный логин/пароль или еще что-то. То есть везде порядок свой.
Общий сценарий действий таков: запускаешь фиддлер, логинишься, находишь запросы которые были выполнены во время залогинивания, пытаешься построить из них цепочку, то есть на предыдущей странице находишь данные, с помощью которых был построен запрос для следующей. Попутно собираешь куки, разумеется.
Цитата Сообщение от alexeygolenkov1 Посмотреть сообщение
Еще хотел бы с Вами связаться не на форуме, а где-нибудь в вк.
Тем чем я готов поделиться, я поделюсь здесь.
0
0 / 0 / 0
Регистрация: 21.07.2019
Сообщений: 9
25.07.2019, 14:22  [ТС]
Скажите, а Вы согласитесь сделать этот проект за определенную сумму? Насколько я понял, знания и опыт у Вас достаточные, много времени на проект не уйдет. Все подробности опишу, но если в кратце, то я повторюсь: нужен бот, который будет покупать определенный товар, если в какой-то момент его цена будет ниже определенной.
0
 Аватар для diadiavova
7258 / 2605 / 744
Регистрация: 11.04.2015
Сообщений: 4,149
Записей в блоге: 43
25.07.2019, 17:06
Цитата Сообщение от alexeygolenkov1 Посмотреть сообщение
Насколько я понял, знания и опыт у Вас достаточные, много времени на проект не уйдет.
Опыт в чем? В залогинивании? Ну да однажды мне это сделать удалось, но удачно только наполовину, поскольку справиться с защитой от ботов мне не удалось. Так что если на сайте есть приличная защита от ботов, то я тут бессилен. Насчет времени тоже спорно: с нодой я практически не знаком и за каждым чихом придется курить документацию, не говоря уже о том, что исследование веб-страниц - такая штука, что никогда заранее нельзя сказать, сколько времени это займет и что в конце концов получится, а что нет. Ну и наконец покупки. Денежные вопросы требуют знания определенных протоколов безопасности и прочей лабуды, с которой я вообще не знаком, так что могу такого накодить, что пользователь вообще без денег останется.
Но есть и хорошая новость: на форуме есть раздел фриланса, думаю там вполне реально найти исполнителя, имеющего опыт во всех этих вопросах.
0
0 / 0 / 0
Регистрация: 21.07.2019
Сообщений: 9
25.07.2019, 17:14  [ТС]
Цитата Сообщение от diadiavova Посмотреть сообщение
Опыт в чем? В залогинивании? Ну да однажды мне это сделать удалось, но удачно только наполовину, поскольку справиться с защитой от ботов мне не удалось. Так что если на сайте есть приличная защита от ботов, то я тут бессилен.
Защиты от ботов там нет. Просто вводится логин и пароль, и все.
Цитата Сообщение от diadiavova Посмотреть сообщение
Насчет времени тоже спорно: с нодой я практически не знаком и за каждым чихом придется курить документацию, не говоря уже о том, что исследование веб-страниц - такая штука, что никогда заранее нельзя сказать, сколько времени это займет и что в конце концов получится, а что нет.
Не обязательно на node.js. Можете использовать любой язык, какой захотите, мне главное чтобы приложение работало.
Цитата Сообщение от diadiavova Посмотреть сообщение
Ну и наконец покупки. Денежные вопросы требуют знания определенных протоколов безопасности и прочей лабуды, с которой я вообще не знаком, так что могу такого накодить, что пользователь вообще без денег останется.
А там нет никакой банковской оплаты. Просто нажимается кнопка "Купить" и все, предмет куплен (если, соответственно хватает денег на аккаунте). А деньги пополнять на аккаунт автоматически не требуется.
Если Вы согласитесь, я буду очень признателен!!!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
25.07.2019, 17:14
Помогаю со студенческими работами здесь

Создать кнопку на стороннем сайте + onclick
Нужно на сайте(сайт:http:// petridish. pw/) создать простую кнопку в левом верхнем углу и при нажатии выполнить команду в консоли(...

Отображение на стороннем сайте данных со своего сайта.
Уже два дня ищу, методами проб и ошибок но никак не могу найти ответ. Я не знаю как это называется может поэтому и не могу найти. ...

Отслеживание изменения значения переменной
Как мне сделать так, что бы при изменении переменной, выполнялась функция из другого класса и после этого выполнялась программа идущая...

Отслеживание изменений значения переменной
Как сделать, что бы открыло окно, где можно отслеживать изменение значение переменной нога в ногу с откладчиком? А то, откладчик включить...

Отслеживание изменения значения переменной
Привет! Возникла такая задача - есть адрес переменной в памяти какого-то процесса. Мне нужно отслеживать это значение и при его изменении...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
Установка Emscripten SDK (emsdk) и CMake на Windows для сборки C и C++ приложений в WebAssembly (Wasm)
8Observer8 30.01.2026
Чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. Система контроля версиями Git. . .
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru