» Poradna » Web a internet

Skript pro vrácení hodnoty na webu

 | Microsoft Windows 10 Chrome 104.0.5112.102

Dobrý den,chtěl bych se zeptat na věc ohledně vrácení hodnoty z elementu z webu kde je například:<div class="alfa mb-1">16.3 °C</div>Chtěl bych pomocí html odkazu získat tu hodnotu z webu. Tak nějak jsem pochopil, že je třeba vytvořit webovou stránku se skriptem co bude vracet požadovanou hodnotu a na tu se odkazem odkazovat a ta mi bude tu hodnotu vracet. To by asi nebyl problém, ale tak nějak nemůžu najít jak by měl takový skript co vytáhne hodnotu z webu třetí strany vypadat.Našel jsem například toto:https://stackoverflow.com/questions/11238508/how-to... Zde jsou sice nějaké návody, ale víceméně na JS funkce jak vrátit hodnotu z elementu, ale už zde nemůžu najít jak to má vypadat aby to vracelo z elementu co je třeba na adrese:https://www.in-pocasi.cz/predpoved-pocasi/cz/praha...

Mohlo by vás také zajímat

Odpovědi na otázku

avatar
 | Microsoft Windows 10 Firefox 105.0

Zadnou webovou stranku realne nepotrebujes. I kdyz nevim co znamena "pomoci HTML ziskat hodnotu z webu". To co te zajima je "web scraping", je na to spousta navodu.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 | Microsoft Windows 10 Chrome 104.0.5112.102

Potřebuju to, tak že zadám nějakou URL a ta mi má vracet hodnotu. Potřebuju to takhle protože to chci namontovat do senzoru PRTG.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 | Microsoft Windows 10 Chrome 104.0.5112.102

Tedy konkrétně PRTG je monitorovací SW co umí všechno možné, jako ping, SNMP, a monitoring spousty dalších protokolů a jeden senzor je HTTP Content sensor což by dle manuálu mělo fungovat tak, že pomocí URL co se odkazuje na hodnotu to zapíše právě do toho senzoru. Jenže hledám způsob jak pomocí URL získat konkrétní hodnotu z nějaké webové stránky z konkrétníjo elementu.

Souhlasím  |  Nesouhlasím  |  Odpovědět
avatar
 | Microsoft Windows 10 Firefox 105.0

URL odkazuje na nejaky obsah stranky, ktery pak musis parsovat a nejakym zpusobem z vysledku dostat ten jeden kousek, ktery te zajima. Znovu, viz "web scraping".

Souhlasím  |  Nesouhlasím  |  Odpovědět
 | Microsoft Windows 10 Chrome 83.0.4103.116

Popravdě mi to přijde dost podobné a rozdíl vidím snad jen v tom, že místo JS to používá Python. Ta JS varianta mi přijde o dost srozumitelnější, ale i tak to pořád naráží na jeden problém a to, že nevím jak mám zkombinovat odkaz na nějaký web a funkci co vrací hodnotu z nějakého elementu té stránky.

Souhlasím  |  Nesouhlasím  |  Odpovědět
avatar
 | Microsoft Windows 10 Firefox 105.0

Zjednodusene: * posles GET request na spravne URL* dostanes zpet nejaka data. Bud CSV, nebo HTML, nebo cokoli jineho, co dany web podporuje (dnes idealne treba JSON nebo XML - oboji vhodne pro automaticke zpracovani * v tech datech najdes obsah, ktery te zajima**to nalezeni obsahu nebyva jednoduche, zvlaste v pripade HTML. Muzes na to jit naivne a hledat nejaky retezec, a pak rict "moje hodnota se vyskytuje v pristich deseti znacich. Spravne se to dela tak, ze se HTML takzvane "parsuje" a tim se vytvori jakysi abstraktni strom pojmu, ze kterych se sklada dana HTML stranka. A v tom stromu se pak da nalezt treba "hodnota elementu, ktery se jmenuje 'teplota'". Mimochodem web scraping neznamena "Python", jen je to jazyk ve kterem je to casto psano, protoze to tam jde na par radku kodu."jak mám zkombinovat odkaz na nějaký web a funkci co vrací hodnotu z nějakého elementu té stránky" - odkaz musis stahnout, takze nejspis pouzijes neco co umi provest HTTP GET - at uz je to nejaka softwarova komponenta nejakeho senzoru, "wget" v prikazove radce nebo prikaz v prakticky libovolnem beznem programovacim jazyce. A vysledek toho volani proste musis zpracovat, coz muze a nemusi byt jendoduche. Proto jsem te odkazal na "web scraping", coz je cela oborova disciplina, ktere se nekteri venuji profesionalne. Pokud ses podival na prvni vysledek hledani na Google a usoudil ze to je nejaky kus kodu v Pythonu, tak je mi to lito ale vic to pomoct nedokazu.

Souhlasím  |  Nesouhlasím  |  Odpovědět
avatar
 | Microsoft Windows 10 Firefox 105.0

"...vic ti pomoct..."

Souhlasím  |  Nesouhlasím  |  Odpovědět
 | Android Chrome 106.0

Někde ti ta tvá stránka musí běžet. Nejlépe bych to udělal na PHP nebo Pythonu, ale pokud to chceš v HTML, bude asi nejjednodušší si tam dát jQuery, ajaxem zavolat tu stránku a pak regexem parsovat to, co ti vrátí (možná na to JS má taky nějaké knihovny)... V PHP jednoduše CURL call a pak třeba přes DOMDocument.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 | Android Chrome 106.0

Ale asi ten sensor nebo čím to budeš chtít nebude umět ten JavaScript... takže nějaký backendový jazyk a server jedině.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 | Microsoft Windows 10 Chrome 83.0.4103.116

Tohle si myslím že nebude problém, Je to regulérní webový server s databází co prezentuje výsledky všelijakého měření.Vypadá to například takto:https://hlassets.paessler.com/common/files/screenshots/... Jak jsem řekl, tak potřebuju "něco" co dokáže při otevření URL adresy vrátit specifickou hodnotu z webové stránky. Pokud to má být nějaky skript co poběží na separátním webserveru tak to si spustím, ale nevím jak udělat ten skript aby vracel hodnotu. Našel jsem sice nějaký návod na funkci co vrací hodnotu z elementu jako např DIV, ale nevím co s tím dál tak aby to vracelo hodnotu z konkrétný webové stránky.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Macintosh OS X Chrome 106.0.0.0

Jestli to má být počasí, tak na to je dobré https://wttr.inTeplota například takto: https://wttr.in/PrahaDokumentace tady: https://github.com/chubin/wttr.in

Souhlasím  |  Nesouhlasím  |  Odpovědět
 | Microsoft Windows 10 Chrome 83.0.4103.116

To byl jen příklad. Ve skutečnosti bych chtěl takhle odečítat data z elektroměru. Pravděpodobně tady z toho:https://www.mikromarz.com/www-mikromarz-cz/eshop/51...

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 10 Chrome 105.0.0.0

Těžení z html používej jako poslední možnost. V dokumentaci píšou, že to má api.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 | Microsoft Windows 10 Chrome 83.0.4103.116

To sice má ale chci to dostat do toho PRTG monitoringu a to jde jen přes HTML, XML, CSV. Nemá to žádné API a proto stejně budu muset provést ten mezikrok konverze na HTML.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 Chrome 69.0.3497.81

Co koukám, tak z API leze právě čisté CSV (strana 24 manuálu http://sensorfor.com/www/manual/SSF_Cloud_user... ) s ; jako oddělovačem.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 | Microsoft Windows 10 Chrome 83.0.4103.116

To vypadá sice dobře ale já potřebuju vyčítat pouze aktuální hodnoty (například 1x za 30sec. Historie dat mi v tom bude dělat bordel a ani mě nezajímá.

Souhlasím  |  Nesouhlasím  |  Odpovědět
avatar
 | Microsoft Windows 10 Firefox 105.0

Porad je vyrazne jednodussi pro tyhle ucely zpracovavat CSV nez HTML

Souhlasím  |  Nesouhlasím  |  Odpovědět

Související témata: StackOverflow