Diskuze: Spuštění skriptu na víc webových stránkách
V předchozím kvízu, Online test znalostí JavaScript, jsme si ověřili nabyté zkušenosti z kurzu.

Člen

Zobrazeno 14 zpráv z 14.
V předchozím kvízu, Online test znalostí JavaScript, jsme si ověřili nabyté zkušenosti z kurzu.
Skoro sa bojím spýtať ... ty sa snažíš spustiť svoj skript na cudzích stránkach?
Není lepší si udělat seznam stránek a třeba cronem je procházet a "ukradnout" co chceš?
Proč hned ukradnout? Odkazy jsou volně dostupné a já jen nechci všechny ručně opisovat. Toho crona zkusím, děkuji.
Je to snad nelegální?
var y = document.getElementsByClassName("xxxxx");
console.log(y[0].href);
Tohle je celý skript, který chci vložit.
Na těch stránkách jsou ty odkazy volně dostupné.
Nie, to čo ty chceš dosiahnuť nie je nelegálne. Len si sa zle vyjadril. A zle pochopil problematiku, lebo to urobiť ide, ale (našťastie) nie tak, ako sa o to pokúšaš.
Najjednoduchší spôsob je stiahnuť si ajaxom obsah prehľadávanej stránky do premennej a až nad tou premennou hľadať príslušný tag. Odporúčam použiť jQuery. Napríklad takto nejako:
const parseResponse = resp => {
const matchedElms = $(resp).find('.hladanaClass')
console.log(matchedElms)
}
$
.get('https://nejaka.stranka')
.then(parseResponse)
Istý si nie som, jQuery som už dlhšie nepoužil, ale princíp sedí. Nemôžeš proste vo svojom skripte priamo rátať s pristupom do kódu inej stránky, veď to je bezpečnostný nezmysel, ale musíš si obsah stránky najskôr stiahnuť, tváriť sa ako prehliadač. Problém je, že toto nebude fungovať na SPA/PWA apky, a tých je čoraz viac. V takom prípade si danú stránku/aplikáciu musíš najskôr stiahnuť ako je, aj so skriptami, napríklad do Node, potom ju s Node vyrenderovať, napríklad s PhantomJS, a až potom môžeš traverzovať jej výsledný DOM model.
No a ak nevieš o čom hovorím, tak to proste ani neskúšaj a radšej si
vygoogli nejakú hotovú apku na tento účel
Myslím, že AJAXem to vůbec nepůjde. Pokud to nejsou jeho weby, padne to na Cross Origin Policy.
Pokud to obě stránky explicitně nepovolí, nelze se z jedné domény
jakkoliv dotknout dat z jiné domény.
Na toto je JS zkrátka špatný jazyk (minimálně u klienta). Na toto je třeba
spustit něco, co bude simulovat prohlížeč, takže nějaká serverová
aplikace napsaná v čemkoliv. Pokud už máš napsaný složitý kód v JS a
nechceš ho přepisovat do jiného jazyka, asi by to šlo nějak zprovoznit v
node.js.
Psal tam 2 řádky
Šlo by to relativně jednoduše udělat v PHPčku. Přes file_get_contents si stáhnout stránku a přes DOMDocument najít co potřebuje.
Nebylo to myšleno špatně, spíš jen definice toho jak získat jeho data.
A. Ajax lze pouzit na localhost. Musel by si nainstalovat a spustit server, treba php. Tam stranku stahnout pres file_get_contents. Po te se stane text lokalni a na tvou stranku ajax lze. (viz Vitek)
B. S temi doplnky to nejspis pujde taky. Nepouzivam, neporadim. Ale pro hru Travian pouzivaji ruzne js doplnky. Takze v googlu bude spousta tipu, jake doplnky.
C. Existuji programy, ktere stahuji stranky na disk do hloubky X odkazu. Myslim, ze tam jde v nekterych zadat, ze z toho vycuca jen odkazy.
D. Da se udelat js editor, div content=editable, tusim, kam je mozne udela copy-paste kod a on by nekde delal seznam odkazu. Bud na onclick nebo onpaste. Neni to tak automaticke jako [A], ale dalo by se.
E. Existuje doplnek Firefox Link checker, ktery jsem pouzival pro testovani
funkcnosti odkazu na strance. Prosel stranku, zkusil kazdy odkaz a pak obarvil
zelene, cervene. Ale bylo by to asi slozitejsi nastudovat si kod a upravit
F. [B] Kdysi jsem na chatu xko.cz si udelal doplnek, ktery se spoustel ze
zalozek a pridaval do stranky ruzny kod. Nevim, zda by to dnes prohlizece
dovolili spoustet. Jmenuje se to BookMarkLet. Funguje to tak, ze na svuj web
nahrajes stranku. Pridas do zalozek (upravis url). Pak otevres cizi. Kliknes na
Zalozky - zvollis tu tvou stranku. A ono to nad tou strankou spusti nejaky
kod.
https://www.jakpsatweb.cz/…marklet.html
Edit: Ok, tak jde to i primo. Ale ja to resil tak, ze jsem kod dal pod url a pak
jsem to spoustel z te url pres eval(). Protoze jsem to chtel sdilet s ostatnimi.
Pridaval jsem si k chatu vlastni listu se smajliky. Tam bylo omezeni 10, ale
pouzivat sly vsechny pres cislo. Takze jsem mel treba 100.
Ja by som to riešil cez Node.js package Puppeteer, ktorý ti dáva prístup ku Chromium-u cez Javascript API - https://www.npmjs.com/…ge/puppeteer.
Zobrazeno 14 zpráv z 14.