[Модуль] Веб-переменные (webvars)

Разработка дополнительных модулей, подключение различных приложений.

Модератор: immortal

Jilber
Сообщения: 642
Зарегистрирован: Ср май 03, 2017 7:41 pm
Благодарил (а): 101 раз
Поблагодарили: 105 раз

Re: [Модуль] Веб-переменные (webvars)

Сообщение Jilber » Ср янв 05, 2022 7:43 pm

А если попробовать так:
Ссылка: "https://rp5.ru/Погода_в_Тамбове" (именно кириллицей).
Шаблон поиска: "<div id="forecastShort-content">(.+?) <div id="windHint" class="cold dangerHint">"
СпойлерПоказать
rp5-2.jpg
rp5-2.jpg (208.42 КБ) 678 просмотров
За это сообщение автора Jilber поблагодарили (всего 2):
CheBuraw (Пн фев 07, 2022 12:26 pm) • nickneo (Пн авг 01, 2022 11:22 am)
Рейтинг: 2.35%
Аватара пользователя
prmres
Сообщения: 382
Зарегистрирован: Пт ноя 24, 2017 2:24 am
Откуда: оттуда
Благодарил (а): 108 раз
Поблагодарили: 112 раз

Re: [Модуль] Веб-переменные (webvars)

Сообщение prmres » Пт янв 07, 2022 3:39 pm

а зачем вообще погоду веб-переменными мучать если есть модуль openweather ???
Не только лишь все!
Аватара пользователя
CheBuraw
Сообщения: 26
Зарегистрирован: Ср авг 23, 2017 6:29 pm
Благодарил (а): 6 раз
Поблагодарили: 12 раз

Re: [Модуль] Веб-переменные (webvars)

Сообщение CheBuraw » Пн фев 07, 2022 12:04 pm

Jilber писал(а):
Ср янв 05, 2022 7:43 pm
А если попробовать так:
Ссылка: "https://rp5.ru/Погода_в_Тамбове" (именно кириллицей).
Шаблон поиска: "<div id="forecastShort-content">(.+?) <div id="windHint" class="cold dangerHint">"
Jilber, спасибо! Так всё заработало. Я почему-то о таком варианте не подумал даже :?
prmres писал(а):
Пт янв 07, 2022 3:39 pm
а зачем вообще погоду веб-переменными мучать если есть модуль openweather ???
Мне интересен именно такой формат: Сегодня ожидается...
openweather не показывает в таком виде (ну или я не увидел). Так же он очень много данных собирает и объектов дофига создает. Плюс нужно API регистрировать. Понимаю, что всё это фигня на самом деле и чисто мои заморочки.
У меня просто есть своя метеостанция данные с которой выводятся на монике в прихожей. Таким образом отражается фактическая погода.
РП5 среди прочих сервисов (по крайней мере в моем месте проживания) показывает достаточно точный прогноз. Да и из всего прогноза мне достаточно этой строки: "Сегодня ожидается .... Завтра: ..."
За это сообщение автора CheBuraw поблагодарил:
nickneo (Пн авг 01, 2022 11:23 am)
Рейтинг: 1.18%
zemyat
Сообщения: 19
Зарегистрирован: Пн дек 10, 2018 10:01 am
Благодарил (а): 3 раза
Поблагодарили: 1 раз

Re: [Модуль] Веб-переменные (webvars)

Сообщение zemyat » Чт июл 28, 2022 10:38 pm

Помогите пожалуйста с регулярным выражением
https://app.weathercloud.net/d5904597256#profile куда попадает данные с локальной метеостанции (без авторизации)
С этого сайта требуется получить текущую температуру, скорость и направление ветра, и значение tittle на картинке облачности
<span id="temp_cur">15</span>
<span id="wspd_cur">1</span>
<span id="wdir_cur">NW</span>
<a id="present-weather-string" rel="tooltip" title="" data-original-title="малооблачно">

Мои попытки получить данные запаролись на первом этапе получение текущей температуры.
Пробовал:
<span id="temp_cur">(.+?)</span>
<span id="temp_cur">(/d+)</span>
<.*>(.*)°C<.*>
(/d+)°C
Пишет INCORRECT VALUE:
fandaymon
Сообщения: 1484
Зарегистрирован: Сб янв 13, 2018 5:00 pm
Благодарил (а): 39 раз
Поблагодарили: 547 раз

Re: [Модуль] Веб-переменные (webvars)

Сообщение fandaymon » Чт июл 28, 2022 11:16 pm

zemyat писал(а):
Чт июл 28, 2022 10:38 pm
Помогите пожалуйста с регулярным выражением
https://app.weathercloud.net/d5904597256#profile куда попадает данные с локальной метеостанции (без авторизации)
С этого сайта требуется получить текущую температуру, скорость и направление ветра, и значение tittle на картинке облачности
<span id="temp_cur">15</span>
<span id="wspd_cur">1</span>
<span id="wdir_cur">NW</span>
<a id="present-weather-string" rel="tooltip" title="" data-original-title="малооблачно">

Мои попытки получить данные запаролись на первом этапе получение текущей температуры.
Пробовал:
<span id="temp_cur">(.+?)</span>
<span id="temp_cur">(/d+)</span>
<.*>(.*)°C<.*>
(/d+)°C
Пишет INCORRECT VALUE:
Сайт заполняет значения при помощи js скрипта - обычным GET данные с него не получишь, на момент запроса их на странице просто нету

Можно извращаться с помощью питона

Код: Выделить всё

import requests

cookies = {
    'PHPSESSID': 'f827955883fc9212d47fea2aed5a996e',
    'WEATHERCLOUD_CSRF_TOKEN': 'ecaa6741b9cb21a665c36872da01f19a0b9c8a55s%3A88%3A%22MW1uTmQ1Yk5CfmNQNElIME1OWHZCU2lScGFZcHBpMHLtox5-6T8ZtQKfvzXtR2wk3VJIc35xZq2x9uCsDruxGA%3D%3D%22%3B',
    '_ga': 'GA1.2.1415913915.1659038309',
    '_gid': 'GA1.2.1003055442.1659038309',
    '__gads': 'ID=aa5d54ed2668e683-22dfc3d081d4003d:T=1659038309:RT=1659038309:S=ALNI_Ma88ofIz3W-KMH1uaBcrqAEh2G8-A',
    '_gat': '1',
    'WEATHERCLOUD_RECENT_ED3C8': 'f6ca7a274ff0eed723ced7339a4024019b1d2680s%3A97%3A%226ef64e9a65d7df2b10dee00bf32d2d190a9a28aa%7B%22_devices%22%3A%22%7B%5C%225904597256%5C%22%3A1659038816%7D%22%2C%22_metars%22%3A%22%7B%7D%22%7D%22%3B',
}

headers = {
    'Accept': 'application/json, text/javascript, */*; q=0.01',
    'Accept-Language': 'ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7',
    'Connection': 'keep-alive',
    # Requests sorts cookies= alphabetically
    # 'Cookie': 'PHPSESSID=f827955883fc9212d47fea2aed5a996e; WEATHERCLOUD_CSRF_TOKEN=ecaa6741b9cb21a665c36872da01f19a0b9c8a55s%3A88%3A%22MW1uTmQ1Yk5CfmNQNElIME1OWHZCU2lScGFZcHBpMHLtox5-6T8ZtQKfvzXtR2wk3VJIc35xZq2x9uCsDruxGA%3D%3D%22%3B; _ga=GA1.2.1415913915.1659038309; _gid=GA1.2.1003055442.1659038309; __gads=ID=aa5d54ed2668e683-22dfc3d081d4003d:T=1659038309:RT=1659038309:S=ALNI_Ma88ofIz3W-KMH1uaBcrqAEh2G8-A; _gat=1; WEATHERCLOUD_RECENT_ED3C8=f6ca7a274ff0eed723ced7339a4024019b1d2680s%3A97%3A%226ef64e9a65d7df2b10dee00bf32d2d190a9a28aa%7B%22_devices%22%3A%22%7B%5C%225904597256%5C%22%3A1659038816%7D%22%2C%22_metars%22%3A%22%7B%7D%22%7D%22%3B',
    'Referer': 'https://app.weathercloud.net/d5904597256',
    '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) Chrome/103.0.0.0 Safari/537.36',
    'X-Requested-With': 'XMLHttpRequest',
    'sec-ch-ua': '".Not/A)Brand";v="99", "Google Chrome";v="103", "Chromium";v="103"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
}

params = {
    'code': '5904597256',
}

response = requests.get('https://app.weathercloud.net/device/values', params=params, cookies=cookies, headers=headers)
mjdm.setGlobal("ThisComputer.cur_temp",  response.json()['temp'])
Добавить код в сценарий и вызывать сценарий с какой-то периодичностью, но будет работать строго пока токен WEATHERCLOUD_CSRF_TOKEN не протухнет. Обычно это час-два.
zemyat
Сообщения: 19
Зарегистрирован: Пн дек 10, 2018 10:01 am
Благодарил (а): 3 раза
Поблагодарили: 1 раз

Re: [Модуль] Веб-переменные (webvars)

Сообщение zemyat » Пт июл 29, 2022 7:57 am

fandaymon писал(а):
Чт июл 28, 2022 11:16 pm

Сайт заполняет значения при помощи js скрипта - обычным GET данные с него не получишь, на момент запроса их на странице просто нету

Можно извращаться с помощью питона

Код: Выделить всё

import requests

cookies = {
    'PHPSESSID': 'f827955883fc9212d47fea2aed5a996e',
    'WEATHERCLOUD_CSRF_TOKEN': 'ecaa6741b9cb21a665c36872da01f19a0b9c8a55s%3A88%3A%22MW1uTmQ1Yk5CfmNQNElIME1OWHZCU2lScGFZcHBpMHLtox5-6T8ZtQKfvzXtR2wk3VJIc35xZq2x9uCsDruxGA%3D%3D%22%3B',
    '_ga': 'GA1.2.1415913915.1659038309',
    '_gid': 'GA1.2.1003055442.1659038309',
    '__gads': 'ID=aa5d54ed2668e683-22dfc3d081d4003d:T=1659038309:RT=1659038309:S=ALNI_Ma88ofIz3W-KMH1uaBcrqAEh2G8-A',
    '_gat': '1',
    'WEATHERCLOUD_RECENT_ED3C8': 'f6ca7a274ff0eed723ced7339a4024019b1d2680s%3A97%3A%226ef64e9a65d7df2b10dee00bf32d2d190a9a28aa%7B%22_devices%22%3A%22%7B%5C%225904597256%5C%22%3A1659038816%7D%22%2C%22_metars%22%3A%22%7B%7D%22%7D%22%3B',
}

headers = {
    'Accept': 'application/json, text/javascript, */*; q=0.01',
    'Accept-Language': 'ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7',
    'Connection': 'keep-alive',
    # Requests sorts cookies= alphabetically
    # 'Cookie': 'PHPSESSID=f827955883fc9212d47fea2aed5a996e; WEATHERCLOUD_CSRF_TOKEN=ecaa6741b9cb21a665c36872da01f19a0b9c8a55s%3A88%3A%22MW1uTmQ1Yk5CfmNQNElIME1OWHZCU2lScGFZcHBpMHLtox5-6T8ZtQKfvzXtR2wk3VJIc35xZq2x9uCsDruxGA%3D%3D%22%3B; _ga=GA1.2.1415913915.1659038309; _gid=GA1.2.1003055442.1659038309; __gads=ID=aa5d54ed2668e683-22dfc3d081d4003d:T=1659038309:RT=1659038309:S=ALNI_Ma88ofIz3W-KMH1uaBcrqAEh2G8-A; _gat=1; WEATHERCLOUD_RECENT_ED3C8=f6ca7a274ff0eed723ced7339a4024019b1d2680s%3A97%3A%226ef64e9a65d7df2b10dee00bf32d2d190a9a28aa%7B%22_devices%22%3A%22%7B%5C%225904597256%5C%22%3A1659038816%7D%22%2C%22_metars%22%3A%22%7B%7D%22%7D%22%3B',
    'Referer': 'https://app.weathercloud.net/d5904597256',
    '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) Chrome/103.0.0.0 Safari/537.36',
    'X-Requested-With': 'XMLHttpRequest',
    'sec-ch-ua': '".Not/A)Brand";v="99", "Google Chrome";v="103", "Chromium";v="103"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
}

params = {
    'code': '5904597256',
}

response = requests.get('https://app.weathercloud.net/device/values', params=params, cookies=cookies, headers=headers)
mjdm.setGlobal("ThisComputer.cur_temp",  response.json()['temp'])
Добавить код в сценарий и вызывать сценарий с какой-то периодичностью, но будет работать строго пока токен WEATHERCLOUD_CSRF_TOKEN не протухнет. Обычно это час-два.
Спасибо, буду искать альтернативные варианты.
fandaymon
Сообщения: 1484
Зарегистрирован: Сб янв 13, 2018 5:00 pm
Благодарил (а): 39 раз
Поблагодарили: 547 раз

Re: [Модуль] Веб-переменные (webvars)

Сообщение fandaymon » Пт июл 29, 2022 6:17 pm

zemyat писал(а):
Пт июл 29, 2022 7:57 am

Спасибо, буду искать альтернативные варианты.
В принципе скрипт до сих пор информацию выдаёт, так что может они и не меняют токен так уж часто...
За это сообщение автора fandaymon поблагодарил:
zemyat (Пт авг 05, 2022 3:24 pm)
Рейтинг: 1.18%
Ответить