ugrás a tartalomhoz

Külső weboldal forrásának elemzése

Emendre · 2012. Aug. 16. (Cs), 19.08
Kacifántos a cím, de nehéz egyszerűen leírni :)

A problémám az, hogy van egy weboldal, ahol egy DIV-ben bizonyos idő közönként változik egy szám.
Ezt szeretném figyeltetni javascriptel, vagy jQueryvel ha úgy egyszerűbb.
A dolog már ott elhasal, hogy csak azonos domain-en lévő oldalak forrását nem ugye tudom változóba tölteni és elemezni.
Viszont eszembe jutott valami, amiről nem is igazán tudom, hogy működik, de lehet alkalmazható lenne a technológia.

Biztos láttatok már olyan kis JS kódokat, amit bemásolva a böngésző URL sávjába, bizonyos dolgokat végeznek az oldallal. Lerombolják, vagy adatot nyernek ki. Pl ilyen volt régen iwiw-hez is, hogy kigyűjthessük az ismerősök mail címeit.

Erről a módszerről tud valaki pár okosat mondani? Vagy egy doksit linkelni?

PHP és egyéb megoldások szintén nem jöhetnek szóba, mert figyelendő adat egy szép facebook login után jön csak ellő, amiről megint csak azt olvastam, hogy nem lehet emulálni server oldalon.
 
1

amiről megint csak azt

Joó Ádám · 2012. Aug. 16. (Cs), 19.56
amiről megint csak azt olvastam, hogy nem lehet emulálni server oldalon.


Bármit meg tudsz csinálni szerveroldalon.
2

Mi a cél?

Poetro · 2012. Aug. 16. (Cs), 20.31
Pontosan mi a célod a kinyert adattal? Mert ez nem igazán tiszta. Ha akarsz, pár perc alatt írhatsz egy Chrome plugint, ami megcsinálja ezt neked, sőt akár a plugin ikonjában ki is jelzi az adatot. Ha szerver oldalon akarod feldolgozni, akkor létezik rengeteg szerver oldali implementáció, amivel a Facebook-kal interakcióba lehet lépni.
3

Csak annyi a cél, hogy ne

Emendre · 2012. Aug. 16. (Cs), 21.50
Csak annyi a cél, hogy ne nekem kelljen figyelni a számot. Ami az engem érdeklő termékek számát jelenti, amire gyorsan le kell csapni, nehogy másé legyen ... :)

Végeredményben sikerült megoldani, ha nem is túl esztétikusan:
URL-be másolt JS segítségével, beinjektáltam egy JS kódot az oldal HEAD részébe, ami betölt egy jQuery keret rendszert. Majd az ugyan itt futó JS kód, fél percente újratölti az oldal BODY részét és figyeli, hogy az ominózus DIV-ben változott-e a szám.
Ha igen, a képembe nyom egy Alert-et :)
4

Greasemonkey pont erre

inf · 2012. Aug. 17. (P), 00.42
Greasemonkey pont erre való... Ha meg asztalit akarsz, akkor tengernyi nyelv van erre a célra. Pl nodejs tud jquery-t is használni...
5

Próbálok finomítani a

Emendre · 2012. Aug. 18. (Szo), 20.19
Próbálok finomítani a scripten, de kicsit elakadtam.
Az a szitu, hogy a külső oldal forráskódját lekérem, sima jQuery ajax kéréssel.
A komplett HTML-t megkapom a data változóba.
Ebből a forráskódból szeretném kiszedni a "szam" osztályú divbe foglalt szöveget.

Jelenleg ezzel a kóddal próbálkoztam:

var number = jQuery("<body>").append(data).find(".szam").text();

Ez egy sima HTML oldalnál működik is, amin próbáltam. De a cél weboldalon nem, mert bekavarnak a scriptek amik annak a fejlécében vannak.

Értem a hiba okát, csak sehol nem találok alternatívát a probléma megoldására! :S
6

$(data).find('.szam').text()

Poetro · 2012. Aug. 19. (V), 08.02
$(data).find('.szam').text()
7

Igen, eddig jó, de az igazi

Emendre · 2012. Aug. 19. (V), 19.50
Igen, eddig jó, de az igazi gondom az az, hogy ebből az osztályból kettő van. Viszont nem minden esetben, tartalomtól függ. Így nem tudok egyértelműen hivatkozni, hogy hányadik elem szövegét szeretném visszakapni.
Egy valamit lehetne vizsgálni, de annak mikéntjére még nem jöttem rá, és példát sem igazán találtam. Ez egy "a" tag, aminek title attribútuma is van. Tehát igazából elég lenne megkeresnem azt az a tag-et, aminek a titleje "szam". Eddig a legjobb amit láttam erre, hogy végigjárni a dokumentum összes a elemét egy ciklussal, amiben vizsgálom a title attributumot, és ha az az amit keresek, akkor annak a szövegét megkapom.
Kérdés, hogy ezt nem lehetne valahogy, egyetlen find-al elintézni? Mert ha mondjuk van 150 link egy oldalon, akkor azt felesleges mind végignézni, szerintem.
8

Nem-nem

Pepita · 2012. Aug. 20. (H), 00.24
az igazi gondom az az, hogy ebből az osztályból kettő van
Semmi gond, az osztály elemeit veszed ki egy tömbbe, aztán végigiterálsz rajta, vizsgálva a téged érdeklő tartalmat.
Tehát igazából elég lenne megkeresnem azt az a tag-et, aminek a titleje "szam".
Ezt is jobb, ha a megadott osztályú elemen belül keresed, akkor nem lesz belőle 150 db. Tehát attól, hogy esetleg több olyan div van, nem kell megijedni, az a megközelítés a jó, csak kezelni kell, hogy több is lehet.