Parsanje podatkov iz spletne strani

Zdravo,

ne spoznam se toliko na omenjeno zadevo t.j. parsanje podatkov iz spletne strani. Sicer vem da, če obstaja nek RSS oz. XML oblika podatkov ni težava. Mene pa zanima ali je to izvedljivo če se spletna stran nalaga v Ajaxu in ni RSS-a oz. XML-ja?

10 odgovorov

v 99 % je. Samo v dveh primerih nisem uspel, a še tisto bi verjetno danes sparsal. če bi še enkrat zgublal čas. Vse kar je na zaslonu MORA biti način da se sparsa. Pa makar OCR ;)

2

Glede na to da je to yes/no vprašanje ti je že 1qay1qay odgovoril. Je možno.

Za več boš moraš pa več informacij podat.

1

Če je ajax klic, bo viden recimo v firebug-u (mozzila) tudi naslov iz katerega prihaja. Tisto url naslov prilepi v brskalnik in dobil boš rezultat.. Verjetno kak json ali xml..

1

Ok, super vsem hvala za odgovore :) Imam sicer nek projekt v planu, tako da ko bom rabil kakršnokoli pomoč bom tako ali tako napisal v temo "Kupi, prodaj, zamenjaj, delo" oz. kar tule...

predno greš zabijat čas dobro preveri pravne opcije (če gre za odprto zadevo)

1

Lahko uporabiš tudi http://www.seleniumhq.org/ in obiskuješ/parsaš strani direktno z brskalnikom. Imaš na voljo Firefox in/ali Chrome. Podprti so java, csharp, python, ruby, php, perl, javascript...

11

Jst bi ti svetoval te korake (oz. da povzamem napisano)

  1. preveri, da ne boš imel kakšnih pravnih sitnosti (kot je 1qay1qay povedal)
  2. včasih se da dobit podatke direktno z naslova, ki ga kliče ajax (@wingback). Tu se ti lahko zatakne, če je slučajno implementiran CSRF token (ali kakšen podoben mehanizem), ker ne boš mogel narest direktnega requesta
  3. lahko pobrskaš za kakšen "data scraper" browser addon in si poskusiš pomagat s tem
  4. lahko uporabiš orodja za avtomatizacijo testiranja spletnih aplikacij, npr. Selenium (@razvijalec)
  5. če bi rad zminimiziral sam projekt (čimmanj overhead-a) in si vsaj malenkost programer, si poglej kakšne knjižnice za interakcijo z brskalnikom oz. avtomatizacijo testiranja. Sam sem do sedaj za par .NET projektov uporabil WatiN (pa kot berem, je popularna knjižnica tudi Coypu, ki bazira na Selenium projektu).

Tako, da bi rdeča nit vsega bil search query: "web site testing automation" :)

1

Če rabiš clicknrun rešitev brez kodiranja, ki dela v večini osnovnih primerov potem poglej https://import.io/

1

V PHPju se da večino zadev rešit s cURLjem. Lahko simuliraš GET in POST klice, logine, AJAX klice. Če stran blokira IP po nekaj časa, zakupiš še HideMyAss, ki ti na določen čas menja IP.

Res redko se zgodi, da se zadeve ne bi dale simulirati tako. V kolikor se to res zgodi, pa kot so že rekli ostali, uporabiš Selenium. Gre počasneje, ampak zagotovo lahko sparsaš tudi JS zadeve.

1

Za 1x sem ostal na 1. točki, ki jo je predlagal 1qay1qay in Spartacus, če ne bo pravnih težav pa dalje, nisem pa nek programer, bol se ukvarjam z spletnimi stranmi, marketingom itd, tako da bom potreboval pomoč :) tule je ne bo težko najti.