Страница 12 из 12

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

Добавлено: Ср янв 05, 2022 7:43 pm
Jilber
А если попробовать так:
Ссылка: "https://rp5.ru/Погода_в_Тамбове" (именно кириллицей).
Шаблон поиска: "<div id="forecastShort-content">(.+?) <div id="windHint" class="cold dangerHint">"
SPOILERSPOILER_SHOW
rp5-2.jpg
rp5-2.jpg (208.42 КБ) 3713 просмотров

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

Добавлено: Пт янв 07, 2022 3:39 pm
prmres
а зачем вообще погоду веб-переменными мучать если есть модуль openweather ???

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

Добавлено: Пн фев 07, 2022 12:04 pm
CheBuraw
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 среди прочих сервисов (по крайней мере в моем месте проживания) показывает достаточно точный прогноз. Да и из всего прогноза мне достаточно этой строки: "Сегодня ожидается .... Завтра: ..."

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

Добавлено: Чт июл 28, 2022 10:38 pm
zemyat
Помогите пожалуйста с регулярным выражением
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:

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

Добавлено: Чт июл 28, 2022 11:16 pm
fandaymon
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 не протухнет. Обычно это час-два.

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

Добавлено: Пт июл 29, 2022 7:57 am
zemyat
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 не протухнет. Обычно это час-два.
Спасибо, буду искать альтернативные варианты.

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

Добавлено: Пт июл 29, 2022 6:17 pm
fandaymon
zemyat писал(а): Пт июл 29, 2022 7:57 am
Спасибо, буду искать альтернативные варианты.
В принципе скрипт до сих пор информацию выдаёт, так что может они и не меняют токен так уж часто...

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

Добавлено: Ср июл 24, 2024 8:22 am
AndrewStick
Товарищи, прошу помощи с регуляркой.
энергосбыт снова переписал страницу с тарифами
теперь у них каждая строка заканчивается LF
соотв. конструкция

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

Многотарифный учёт.+?Ночная зона Т2<.+?d-table-num-left">(.+?)<\/div>
не работает

сайт: https://www.mosenergosbyt.ru/individual ... /index.php
что я хочу:
Найти последнее "по трем зонам", за ним "зона Т2", и взять значение между d-table-num-left"> и </div

Пока дошел до

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

по трем зонам(?:.+?\n){1,}.*зона Т1(?:.+?\n){1,4}.+?(\d+,\d+)
В калькуляторе работает
SPOILERSPOILER_SHOW
QIP Shot - Screen 1323.jpg
QIP Shot - Screen 1323.jpg (742.13 КБ) 2283 просмотра
а в веб-переменных нет. пишет incorrect value :(
Что ему не нравится?
И еще вопрос: модуль не воспринимает тэг глобальности '/ /g' Это можно как то победить?

В общем добил. Вот такая конструкция заработала

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

трем зонам (?:.+?)зона Т1 (?:.+?)d-table-num-left">\n[[:blank:]]+(?:.+?)[[:blank:]]+<\/div(?:.+?)трем зонам (?:.+?)зона Т1 (?:.+?)d-table-num-left">\n[[:blank:]]+(.+?)[[:blank:]]+<\/div
При этом, в калькуляторе она не работает.
Если нужны данные из первой половины, то убираем "?:" из первых скобок между blank`ами и вставляем во вторые.