Hirdetés
- Projektor topic
- Milyen videókártyát?
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Fejhallgató erősítő és DAC topik
- A Linux megnégyszerezte magát a Steamen — a Microsoft ismét ígérget
- AMD vs. INTEL vs. NVIDIA
- Először kombinálja a Full HD-t az 1000 Hz-cel egy monitor
- AMD Navi Radeon™ RX 9xxx sorozat
- Speciális kiadású AMD-s alaplapot villantott az ASUS a 20 éves ROG-jubileumra
- Apple MacBook
-
Fórumok
PROHARDVER! - 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! BlogokMobilarena - mobil fórumok
Okostelefonok Mobiltelefonok Okosórák Autó+mobil Üzlet és Szolgáltatások Mobilalkalmazások Tartozékok, egyebek Mobilarena 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
PROHARDVER! - 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! BlogokMobilarena - mobil fórumok
Okostelefonok Mobiltelefonok Okosórák Autó+mobil Üzlet és Szolgáltatások Mobilalkalmazások Tartozékok, egyebek Mobilarena 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
- Projektor topic
- Milyen videókártyát?
- Vicces képek
- Luck Dragon: Asszociációs játék. :)
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Kerékpárosok, bringások ide!
- Huawei Watch Fit 5 Pro - jó forma
- Formula-1
- Honor Magic7 Pro - kifinomult, költséges képalkotás
- exHWSW - Értünk mindenhez IS
- 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
- Xiaomi Redmi Note 12 Pro+ 5G 256GB, Kártyafüggetlen, 1 Év Garanciával
- Sony FDR-AX53 videókamera
- HP ZBook Fury 17 G8 i7-11800H 32 GB RAM 1TB SSD NVIDIA RTX A3000 Garancia
- Apple iPhone 14 Pro 128GB, Kártyafüggetlen, 1 Év Garanciával
- HP ProBook 455 G7 15,6" Ryzen 3 4300U, 8-16GB RAM, SSD, jó akku, számla, 6 hó gar
Á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.


