- Magisk
- Okosóra és okoskiegészítő topik
- Íme az új Android Auto!
- Samsung Galaxy S24+ - a személyi asszisztens
- Yettel topik
- Szívós, szép és kitartó az új OnePlus óra
- Feltalálta a Google a keresőmotort
- Samsung Galaxy A26 - csak a szokásos
- Google Pixel topik
- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
-
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
-
maestro87
őstag
-
maestro87
őstag
Google script és nem nagyon ismeri ezt a kifejezést vagy csak én nem tudom használni.
És igen, URL címről lenne szó.
Úgyhogy lehet marad a regex, csak azt se nagyon használtam még.
-
maestro87
őstag
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(???)) -
maestro87
őstag
-
maestro87
őstag
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.Köszi, ezt az F12-t sem ismertem, így már tényleg átláthatóbb.

Már csak egy kérdésem van. Miféle változó az $? -
maestro87
őstag
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.
Köszi szépen!

Igen, tényleg 10 mp a futási idő...
És ezt a fát hogy kell kiíratni?
-
maestro87
őstag
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);
}
});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...
-
maestro87
őstag
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());
} -
maestro87
őstag
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.
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.

-
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?

-
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.
-
maestro87
őstag
Ezt Google Script-re hogy lehetne lefordítani?
var img = document.querySelector('meta[property="og:image"]').content;Egy URL-ből szeretném kinyerni az og:image meta tagot és a kép linkjét betenni egy cellába, de sehogy sem jön össze, nem találtam rá megoldást.

-
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);
} -
maestro87
őstag
-
maestro87
ő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.
-
maestro87
őstag
-
maestro87
őstag
-
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? -
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.
-
maestro87
őstag
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.És ezt pl. Tampermonkey bővítményben kell futtatni?
Megtudnád írni nekem? Gondolom csak pár sor.
C-ben tudok programozni, de a Javascript-ben nem igazodok el... Jöhet pm-ben is.
-
maestro87
őstag
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.

-
maestro87
őstag
Na most meg működik. Nem értem. Köszi Siriusb!

-
maestro87
őstag
Ü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.
Ú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
- Óra topik
- Parfüm topik
- Okos lesz a következő szemüveged
- Audi, Cupra, Seat, Skoda, Volkswagen topik
- Először kombinálja a Full HD-t az 1000 Hz-cel egy monitor
- Motoros topic
- Kormányok / autós szimulátorok topikja
- Diablo IV
- Speciális kiadású AMD-s alaplapot villantott az ASUS a 20 éves ROG-jubileumra
- Mesterséges intelligencia topik
- További aktív témák...
- 27% - Sapphire PULSE Radeon RX 7800 XT 16GB GDDR6 Videokártya!
- Dell Latitude 3380 - Core i3 6006U, 4-8GB DDR4 RAM, gyári töltő, számla, 6 hó gar
- 27% - ÚJ Kingston FURY Beast 64GB (2x32GB) DDR5 5600MHz KF556C36BBEK2-64
- Apple iPhone 15 Pro 128GB eladó! 86% akku, Patika állapot, 12 hónap garancia
- Apple iPhone 16 Pro Max 256GB eladó! 94% Akku, Szép állapot, 12 hó gar
- ÁRGARANCIA! Épített KomPhone Ultra 9 285K 32/64GB RAM RX 9070 XT 16GB GAMER PC termékbeszámítással
- AKCIÓ! Lenovo LOQ 15AHP10 FHD GAMER notebook - Ryzen7 250 16GB DDR5 1TB SSD RTX 5060 8GB
- Xiaomi Redmi Note 14 Pro+ 5G 512GB, Kártyafüggetlen, 1 Év Garanciával
- Eladó új állapotban levő Redmi Note 10S 6/128GB szürke / 12 hónap jótállás
- Kezdő Gamer PC-Számítógép! Csere-Beszámítás! I5 7400 / GTX 1650 / 16GB DDR4 / 256 SSD + 1TB HDD
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest



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

Nem nagyon értem a javascript-et. 
C-ben tudok programozni, de a Javascript-ben nem igazodok el... Jöhet pm-ben is.
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.


