- Samsung Galaxy A52s 5G - jó S-tehetség
- Vivo X200 Pro - a kétszázát!
- Okosóra és okoskiegészítő topik
- Rég várt frissítést kap az Android tárcsázója
- Poco F8 Ultra – forrónaci
- iPhone topik
- Xiaomi 17 Ultra - jó az optikája
- Apple Watch
- Samsung Galaxy S26 Ultra - fontossági sorrend
- Nagy bemutatóra készül az Oppo
-
Fórumok
Mobilarena - mobil fórumok
Okostelefonok Mobiltelefonok Okosórák Autó+mobil Üzlet és Szolgáltatások Mobilalkalmazások Tartozékok, egyebek Mobilarena blogokPROHARDVER! - hardver fórumok
Notebookok TV & Audió Digitális fényképezés Alaplapok, chipsetek, memóriák Processzorok, tuning Hűtés, házak, tápok, modding Videokártyák Monitorok Adattárolás Multimédia, életmód, 3D nyomtatás Tabletek, E-bookok Nyomtatók, szkennerek PC, mini PC, barebone, szerver Beviteli eszközök Egyéb hardverek PROHARDVER! BlogokIT café - infotech fórumok
Infotech Hálózat, szolgáltatók OS, alkalmazások SzoftverfejlesztésGAMEPOD - játék fórumok
PC játékok Konzol játékok MobiljátékokLOGOUT - lépj ki, lépj be!
LOGOUT reakciók Monologoszféra FototrendFÁRADT GŐZ - közösségi tér szinte bármiről
Tudomány, oktatás Sport, életmód, utazás, egészség Kultúra, művészet, média Gazdaság, jog Technika, hobbi, otthon Társadalom, közélet Egyéb Lokál PROHARDVER! interaktív
-
Frissítve: 2014-02-25 10:20 Téma összefoglaló
JavaScript != Java (A JavaScript nem összekeverendő a Javával, két különböző programozási nyelvről van szó!)
Új hozzászólás Aktív témák
-
Jim-Y
veterán
-
#78693120
törölt tag
Sziasztok!
Van egy ilyen string-em:var str = 'ID=123456&stb'
Ebből szeretném a számsort kiszedni, viszont a számjegyek száma változó (lehet csak 123 is) és az ID szám után vagy & karakter következik vagy ott van a sor vége. Hogy tudnám kiszedni a számsort a szövegből feltétel kezelés nélkül?
var ID = str.substring(str.indexOf('ID='), str.indexOf(???))Próbáld ki ezt:
str.substring(str.indexOf('=')+1, str.length) -
Doink
aktív tag
Sziasztok!
Van egy ilyen string-em:var str = 'ID=123456&stb'
Ebből szeretném a számsort kiszedni, viszont a számjegyek száma változó (lehet csak 123 is) és az ID szám után vagy & karakter következik vagy ott van a sor vége. Hogy tudnám kiszedni a számsort a szövegből feltétel kezelés nélkül?
var ID = str.substring(str.indexOf('ID='), str.indexOf(???))new URLSearchParams("ID=123456&stb=7&valami=rrttgg").get("ID")Ha IE11 is cél akkor van hozzá polyfill.
-
Hunmugli
aktív tag
Sziasztok!
Van egy ilyen string-em:var str = 'ID=123456&stb'
Ebből szeretném a számsort kiszedni, viszont a számjegyek száma változó (lehet csak 123 is) és az ID szám után vagy & karakter következik vagy ott van a sor vége. Hogy tudnám kiszedni a számsort a szövegből feltétel kezelés nélkül?
var ID = str.substring(str.indexOf('ID='), str.indexOf(???))Ami neked kell, az a reguláris kifejezés. Egy hasonló bonyolultságú
Hogy a javascriptbe hogy teszed be, annak már nézz te magad utána - én nem szeretném megtanulni.Egyébként a linkelt oldalon a Tools menü alatt van is egy code generator, az már kész kódot ad neked

Szerk.: lemaradt a * a kifejezés végéről...
-
Doink
aktív tag
-
Doink
aktív tag
Ezt a fát nem akarod kiiratni mert azt látod a böngészőben F12->source. <html> a fa csúcsa, annak van 2 gyereke <head> <body> és így tovább. A belső adatszerkezet lesz egy fa ahogy a gép tárolni fogja a memóriában hogy gyorsan tudj benne keresni és módosítani.
Ennek a libnek meg pont az a lényege hogy css selectorokkal tudj keresni/módosítani ebben a html-ben és ne kelljen stringkezelési műveletekkel bajlódni.
Ha mégis be szeretnéd járni a fát akkor a a dokumentációban találsz olyan metódust hogy .children() ami visszadaja egy node közvetlen gyerekeit és így már adja magát hogy rekurzívan elég egyszerű bejárni.A részfát úgy értettem hogy ha van az oldalon egy ilyened és neked kell a price és a name
<!-- többmillió html kód felette -->
<div id="product">
<p class="price">1</p>
<p class="name">name</p>
</div>
<!-- többmillió html kód alatta -->és amúgy az oldalon még van ezer más html tag mindenfelé akkor azt így csinálod:
var $ = cheerio.load(html);
var product = $("#product");
var result = {
price: product.children(".price").text(),
name: product.find(".name").text()
}és nem ezt:
var $ = cheerio.load(html);
var result = {
price: $("#product > .price").text(),
name: $("#product > .name").text()
}mert így kétszer végig fog menni az egész fán megkeresni a #product-ot.
Ettől függetlenül a cheerio oldalán van elég sok példa amit érdemes lenne átfutnod. -
Doink
aktív tag
Köszi, de hibát dob ki:
"TypeError: (class)@10da0984 nem egy függvény, hanem egy undefined. (9. sor a(z) „cheerio_gasify” projekt „gasify” fájljában)"
Egyébként az egyes sorok mit csinálnak a te kódban, mert eléggé megvariáltad?
Vagy miben másabb?Más: Ott sajnos nem mindig a helyes ár jelenik meg.
Például ha email only címkével van ellátva, akkor az oldal forrásában itt található a helyes ár:<span class="my_shop_price" data-orgp="49.99" style="color:#CC0000; font-size:28px; font-weight:bold">47.99</span>
[link]
Tehát innen hogy tudom kiszedni a 47.99-et?
A termék nevét meg innen kellene:<h1 style="display:inline;">Original Xiaomi Mi Band 2 Smart Watch for Android iOS</h1>
<span class="allProperty"> -<strong> BLACK</strong></span>Amúgy ennek a függvénynek nem kellene gyorsabban működnie a string-es megoldásomnál? Mert kétszer lassabban fut le...
A fenti kódot nodejs-ben futtattam mert a lényegi rész ugyan az google scriptben is:
var cheerio = cheeriogasify.require('cheerio');
function run() {
var response = UrlFetchApp.fetch("https://www.gearbest.com/smart-watches/pp_362705.html");
var $ = cheerio.load(response.getContentText());
var result = {
url: $("meta[property='og:url']").attr('content'),
price: $(".price_area > .goods_price > .my_shop_price").data('orgp'),
name: $(".goods-info-top > h1").text()
}
Logger.log(result);
}A cheerionak lassabbnak kell lennie amíg csak pár adatra van szükséged, ettől függetlenül így is elég gyors és ugyan úgy lehet rajta gyorsítani ahogy jquery-ben is tudsz (nem az egész fában keresel hanem csak részfában). Az hogy a google script-re milyen korlátozások vannak és ott miért ilyen lassú már maga az url lekérdezés is annak neked kell utánanézni, nodejs-ben 180ms alatt végez a felparseolással és az eredmény kiírással, google scripben pedig ugyan ez a művelet több mint 10 másodperc.
-
Doink
aktív tag
Ezt a cheerio lib-et hozzáadtam a projektemhez.
A példa program működik is, de honnan tudom, hogy miket lehet lekérdezni?
Például, hogy tudom lekérdezni ennek a terméknek a nevét (nem a title-t, mert az másabb), árát, megjelenített kép linkjét stb...?function cheerio()
{
var cheerio = cheeriogasify.require('cheerio');
var response = UrlFetchApp.fetch("https://www.gearbest.com/smart-watches/pp_362705.html");
var $ = cheerio.load(response.getContentText());
Logger.log($('title').text());
}Szia, sima css selectorokkal:
var request = require('request');
var cheerio = require('cheerio');
request('https://www.gearbest.com/smart-watches/pp_362705.html', function (error, response, html) {
if (!error && response.statusCode == 200) {
var $ = cheerio.load(html);
var url = $("meta[property='og:url']").attr('content');
var price = $("meta[property='og:price:amount']").attr('content');
console.log(url, price);
}
}); -
Doink
aktív tag
Akkor itt egy ilyen oldal ami ezeket a tagokat tartalmazza:
<meta property="og:site_name" content="www.banggood.com"/>
<meta property="og:description" content="Only US$14.44, buy best ANENG AN8002 Digital True RMS 6000 Counts Multimeter AC/DC Current Voltage Frequency Resistance Temperature Tester ℃/℉ sale online store at wholesale price.US/EU warehouse."/>
<meta property="og:type" content="product">
<meta property="og:title" content="ANENG AN8002 Digital True RMS 6000 Counts Multimeter AC/DC Current Voltage Frequency Resistance Temperature Tester ℃/℉">
<meta property="og:url" content="https://www.banggood.com/ANENG-AN8002-Digital-Ture-RMS-Multimeter-ACDC-Current-Voltage-Frequency-Resistance-Temp-Tester-p-1145700.html">
<meta property="og:image" content="https://img.banggood.com/thumb/view/oaupload/banggood/images/F4/8C/36c71d9d-edb6-402a-abf7-419251b4a5c6.jpg">Ezekből szeretném kinyerni a "content"-et.
De most meg csináltam string-es műveletekkel, ami működik ugyan, csak ha van erre valami beépített függvény, azért mégis jobb lenne azt használni.
function openGraph(url, type)
{
var response = UrlFetchApp.fetch(url);
var content = response.getContentText();
var preString = '<meta property="og:'+type+'" content="';
var searchString = '"';
var preIndex = content.indexOf(preString)+preString.length;
var searchIndex = preIndex + content.substring(preIndex).indexOf(searchString);
return content.substring(preIndex, searchIndex);
}
//eredmények kiíratása:
function onEdit()
{
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sh = ss.getActiveSheet();
var url = "https://www.banggood.com/ANENG-AN8002-Digital-Ture-RMS-Multimeter-ACDC-Current-Voltage-Frequency-Resistance-Temp-Tester-p-1145700.html";
Logger.log(openGraph(url, 'site_name'));
Logger.log(openGraph(url, 'description'));
Logger.log(openGraph(url, 'type'));
Logger.log(openGraph(url, 'title'));
Logger.log(openGraph(url, 'url'));
Logger.log(openGraph(url, 'image'));
}Illetve az a baj még ezzel, hogy ha a webfejlesztő egy szóközzel többet tesz valahová (mint itt a
site_name"és a"contentközött), akkor már nem működik jól.
Szóval ezen adatok kinyerésére nincs valami atom biztosan működő beépített függvény?A Google Script amúgy Javascript alapú (pl. google táblázatot lehet vele okosítani), de úgy néz ki, hogy vannak olyan JS utasítások amit vagy nem ismer, vagy csak én használom rosszul őket.

Azért nem működik mert szerver oldalon lehúzol egy stringet valahonnan és azt még fel kéne parse-olni hogy ne szövegként kelljen kezelni hanem fába legyen rendezve mint a DOM.
Erre én kb csak a cheerio nevű lib-et ismerem de szerintem bármilyen xml parser megteszi ha az oldal valid. -
Jim-Y
veterán
Szerintem csak
1: az eredeti kerdesed csak annak vilagos aki epp azzal foglalkozik amivel te
2: kevesen vannak akik ezzel a temaval foglalkoznakPl nekem sem vilagos hogy mire is van szukseged. Olyan mintha egy mezei URL-bol kene valamit kinyerned, de abban nem szokott "og:image" lenni szoval megiscsak valami mas url-rol van szo. A google script nem tudom pontosan, hogy micsoda. Szoval szerintem csak nem vilagos a kerdes es ezert sem valaszol ra senki. Az is lehet hogy a kerdesed nem javascript specifikus inkabb valami XY (google script vagy fene se tudja mi) specifikus.
-
maestro87
őstag
Tudom, hogy ez nem működik. Ezt a kódot múltkor kaptam, mikor a böngésző eszköztárra kellett egy ilyen "könyvjelző script", ott működik, de a google script már nem ismeri. Azt akarom megcsinálni, hogy ha a táblázat egy cellájába beírok egy url címet, akkor a mellette lévő cellákba automatikusan írja be az og:title és az og:image tagokat.
Már minden létező kifejezésre rákerestem, de nem találtam egyszerű megoldást, csak ezt a szolgáltatást ami azt hiszem ezt csinálná meg helyettem, pontosabban ezen videó alapján már könnyen megtudnám csinálni.
De tényleg ilyen bonyolult lenne megírni, hogy jobban megéri beregisztrálni egy ilyen oldalra?
Megköszönném ha valaki megadná a helyes kódot ezen meta tagok kinyerésére, mert én csak a sötétben tapogatózok. C-nyelvet ismerem csak, azt se 100%-osan.
Ezt tényleg nem tudja senki hogy csinálhatnám meg? Vagy nem olyan egyszerű mint amilyennek látszik?

-
mobal
nagyúr
Mert nem jó a selectorod.
-
maestro87
őstag
Végül ezzel a leírással sikerült.

A függvényemben meg nem működik rendesen.

20 órát 22-re konvertálja, mikor 14-re kellene. Mit rontottam el?function convertTime()
{
var range = SpreadsheetApp.getActiveRange();
var data = [];
var output = [];
data = range.getValues();
for(var i = 0, iLen = data.length; i < iLen; i++) {
var HongKong = m.moment.tz(data[i][0].toString(), 'Asia/Hong_Kong');
var Budapest = HongKong.tz('Europe/Budapest').format('YY/MM/DD HH:mm');
output.push([Budapest]);
}
range.offset(0,1).setValues(output);
} -
DNReNTi
őstag
Sziasztok!
Van egy
datatömböm, amibe dátumokat olvasok be. Hogy lehetne megmondani a függvénynek, hogy UTC+8-ban vannak ezek a dátumok?A függvény a következő (google apps script):
function convertTime()
{
var range = SpreadsheetApp.getActiveRange();
var data = [];
var output = [];
data = range.getValues(); // kijelölt cellák értékeinek beolvasása a data tömbbe
for(var i = 0, iLen = data.length; i < iLen; i++) {
var timeUTC2 = Utilities.formatDate(data[i][0], 'GMT+2', 'yy/M/d HH:mm');
output.push([timeUTC2]);
}
range.offset(0,1).setValues(output); // a mellette lévő oszlopba rakja az eredményeket
}A függvény működik, a probléma csak az, hogy a google táblázat UTC+2-be van beállítva és alapértelmezetten (nem akarom átállítani) ezt az időzónát veszi alapul mindenhol, így a kimenet ugyanaz lesz mint a bemenet.
Sajnos a google táblázatos topik halott, így inkább ide írtam a nyelv javascript alapja miatt.
-
CSorBA
őstag
Mert az nem kép, hanem meta tag. És nem src-je van, hanem content-je.
document.querySelector('meta[property="og:image"]').content; -
martonx
veterán
-
maestro87
őstag
Sziasztok!
A google link rövidítőt működésre lehet még bírni könyvjelzőként? Azaz ha rányomok a könyvjelzőre, akkor készítse el a rövid linket.
Ezt találtam, de már nem működik hiába cseréltem ki a címet.
Itt van a google-től egy leírás, de én ehhez kevés vagyok.
Senki?

Akkor következő kérdés. Milyen paranccsal lehet kiszedni egy oldalról annak a képnek a linkjét amit pl. a facebook is megjelenít ha megosztom az oldalt? -
PumpkinSeed
addikt
Sziasztok!
Nem tudom, hogy jó helyen járok-e, remélem igen.

Adott egy online shop ami ehhez hasonló akciókat fog szervezni a napokban. Mint látható nagyon olcsón megvásárolhatóak lesznek egyes termékek, de csak limitált mennyiségben (linkeltnél ez 1 főt jelent). A lényege, hogy amint a számláló a nullához ér, meg kell nyomni a Buy gombot. Aki a leghamarabb nyomja meg, az veheti meg a terméket a kiírt áron.
Nem kamu akciók, tényleg csak a gombnyomáson múlik a dolog, de minden ms számít...Na most állítólag a leleményes ruszkik
ezeket script-ekkel (Java?) szokták megnyerni ami kattint helyettük a megfelelő időben. Legalábbis elég gyanús, hogy a legnagyobb akciókat orosz e-mail-lel rendelkezők nyerik.
Tehát én is egy ilyen srcipt-et szeretnék.
Viszont nem konyítok az efféle script-ekhez. 
A kérdés, hogy van-e vállalkozó szellemű aki segítene nekem ebben?
Valami olyasmi kellene ami x időnként frissítené a számlálót (el szokott csúszni) és 0-nál automatikusan megnyomná a gombot.
Tudom, hogy sok múlhat a ping-en is, de azért mégis nagyobb eséllyel indulnánk a "versenyben".
Mellesleg nekem is és egy fórumtársnak is sikerült már megcsípni 1 centes billentyűzetet, illetve tablet-et, szóval nem lehetetlen.
Remélem tud valaki segíteni... és nem csak magának tartja meg a srcipt-et.

Az ilyet Javascriptben írják meg. Ha megnézed a forrást találsz ilyet, hogy
remainTimeamiben van day, hour, mini és sec. Ezeket kell figyelni, hogy 0 legyen mind, viszont azt is figyelembe kell venni, hogy van egy betű is ott. Szóval ha mondjuk a.remainTime .dayegyenlő0d-vel és így tovább akkor egy esemény következik a gombon ami alatta van. -
maestro87
őstag
Na most meg működik. Nem értem. Köszi Siriusb!

-
Siriusb
veterán
Üdv!
Lenne két Java scriptem:
<SCRIPT LANGUAGE="JavaScript">
......
....
</SCRIPT>
...tartalom...
<SCRIPT LANGUAGE="JavaScript">
......
....
</SCRIPT>
Az index.php-mat szeretném egy kicsit karcsúsítani úgy, hogy egy külön fájlba teszem a scriptet. És az a kérdés, hogy, hogy kell ezt beszúrni?
Próbáltam, hogy a két részt külön fájlba mentem pl. valami1.php és valami2.php-ba majd beszúrom a
<?php
include('valami1.php');
?>
paranccsal de így nem megy. Gondolom azért mert nem php.De jobb lenne, ha 1 fájlba meglehetne oldani. Div-et sejtek a dologban, de ahhoz még nem értek.
Még nagyon kezdő vagyok, ezért valaki megadhatná a helyes választ.
Köszi.Leginkább így:
<script type="text/javascript" src="xxx.js"></script>
Új hozzászólás Aktív témák
-
Fórumok
Mobilarena - mobil fórumok
Okostelefonok Mobiltelefonok Okosórák Autó+mobil Üzlet és Szolgáltatások Mobilalkalmazások Tartozékok, egyebek Mobilarena blogokPROHARDVER! - hardver fórumok
Notebookok TV & Audió Digitális fényképezés Alaplapok, chipsetek, memóriák Processzorok, tuning Hűtés, házak, tápok, modding Videokártyák Monitorok Adattárolás Multimédia, életmód, 3D nyomtatás Tabletek, E-bookok Nyomtatók, szkennerek PC, mini PC, barebone, szerver Beviteli eszközök Egyéb hardverek PROHARDVER! BlogokIT café - infotech fórumok
Infotech Hálózat, szolgáltatók OS, alkalmazások SzoftverfejlesztésGAMEPOD - játék fórumok
PC játékok Konzol játékok MobiljátékokLOGOUT - lépj ki, lépj be!
LOGOUT reakciók Monologoszféra FototrendFÁRADT GŐZ - közösségi tér szinte bármiről
Tudomány, oktatás Sport, életmód, utazás, egészség Kultúra, művészet, média Gazdaság, jog Technika, hobbi, otthon Társadalom, közélet Egyéb Lokál PROHARDVER! interaktív
- Samsung Galaxy A52s 5G - jó S-tehetség
- Projektor topic
- Autós topik
- Vivo X200 Pro - a kétszázát!
- Lightyear - befektetési app
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Revolut
- Kamionok, fuvarozás, logisztika topik
- Speciális kiadású AMD-s alaplapot villantott az ASUS a 20 éves ROG-jubileumra
- Apple MacBook
- További aktív témák...
- 24 magos AMD Threadripper alapú munkára kiváló félgép, 128GB RAM-mal
- HP ZBook Fury 15 G7 i7-10850H 32GB 512GB SSD Quadro T2000 4GB FHD HUN bill, szép állapotban eladó
- Eladó MacBook Pro 16,1 2019 CTO
- új 0 km es garanciás lenovo loq rtx 5050 8gb
- Eladó teljesen újszerű karcmentes Samsung Galaxy Watch Ultra
- Bomba ár! Lenovo ThinkPad L14 G2i - i5-11G I 16GB I 256SSD I 14" FHD I Cam I W11 I Gari!
- AKCIÓ! Motorola Edge 60 Pro 5G 512GB okostelefon garanciával hibátlan működéssel
- Felújított laptopok számlával, garanciával! Ingyen Foxpost/PostaPont!
- AKCIÓ! Asus Z170-A Z170 chipset alaplap garanciával hibátlan működéssel
- Dobozos Új Dell Xps 15 9530 i7 13620h 16gb ram 1tb ssd intel uhd graphics+ Intel Arc A370M
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest





Például ha email only címkével van ellátva, akkor az oldal forrásában itt található a helyes ár:

ezeket script-ekkel (Java?) szokták megnyerni ami kattint helyettük a megfelelő időben. Legalábbis elég gyanús, hogy a legnagyobb akciókat orosz e-mail-lel rendelkezők nyerik.


