Hirdetés
-
PROHARDVER!
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
-
Hunmugli
aktív tag
válasz
maestro87
#6922
üzenetére
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
válasz
maestro87
#6690
üzenetére
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
válasz
maestro87
#6688
üzenetére
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
válasz
maestro87
#6685
üzenetére
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
válasz
maestro87
#6674
üzenetére
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
válasz
maestro87
#6671
üzenetére
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
válasz
maestro87
#6656
üzenetére
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);
} -
PumpkinSeed
addikt
válasz
maestro87
#6244
üzenetére
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.
Új hozzászólás Aktív témák
- Sweet.tv - internetes TV
- Hobby elektronika
- Sorozatok
- Pánik a memóriapiacon
- Milyen egeret válasszak?
- Melyik tápegységet vegyem?
- Gumi és felni topik
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Telekom otthoni szolgáltatások (TV, internet, telefon)
- Menekül a HEVC licencdíja elől a HP és a Dell
- További aktív témák...
- Eladó/Lenovo X240 Ultrabook/I5-4200U/8GB DDR3/Win 10Home/12,5" FHD/ !ÉRINTŐKÉP!/!!!
- Bomba ár! Lenovo ThinkPad T14s G2 - i7-11GEN I 16GB I 1TSSD I 14" FHD Touch I W11 I Cam I Gari!
- Bomba ár! Lenovo ThinkPad L460 - Intel 3955U I 8GB I 128GB SSD I 14" FHD I Cam I W10 I Garancia!
- Bomba ár! Lenovo IdeaPad V15-IWL: i5-8GEN I 8GB I 256SSD I 15,6" FHD I Cam I W11 I Garancia!
- Bomba ár! Lenovo V155-15API - Ryzen 5 I 8GB I 512SSD I 15,6" FHD I Radeon I HDMI I Cam I W11 I Gari
- HIBÁTLAN iPhone 12 mini 64GB Red -1 ÉV GARANCIA - Kártyafüggetlen, MS2036
- Tablet felvásárlás!! Apple iPad, iPad Mini, iPad Air, iPad Pro
- Workstation bazár - Lenovo, HP, Dell - számla, 6 hó garancia
- Samsung Galaxy A23 5G 128GB, Kártyafüggetlen, 1 Év Garanciával
- GYÖNYÖRŰ iPhone 13 Pro 256GB Sierra Blue -1 ÉV GARANCIA - Kártyafüggetlen, MS3361, 100% Akksi
Állásajánlatok
Cég: ATW Internet Kft.
Város: Budapest
Cég: Laptopműhely Bt.
Város: Budapest
Hogy a javascriptbe hogy teszed be, annak már nézz te magad utána - én nem szeretném megtanulni.






