PDA

Pogčedajte punu verziju : Problem sa preuzimanjem sadrzaja stranice


krcko
17. 03. 2006., 02:22
Pisem neku skriptu koja ce da vuce vremenske podatke sa weather-channela i imam problema upravo kod tog dela - preuzimanjem podataka.
podaci su u xml obliku i samo parsiranje xml-a mi ne predstavlja problem.
posto ne mogu da koristim cUrl (jer nije instaliran na serveru na kom ce moja skripta da se izvrsava) nasao sam jednu klasu "Snoopy" (http://snoopy.sourceforge.net, mada sam siguran da znate za ovu skriptu) koja emulira brower (kao cUrl) samo sto mi snoopy daje pogresne rezultate!

trebaju mi podaci sa ovog linka:
http://xoap.weather.com/search/search?where=Kraljevo

ako jednostavno odem na taj link sa bilo kojim browserom dobijem ovo:

<?xml version="1.0" encoding="ISO-8859-1"?>
<!--This document is intended only for use by authorized licensees of The Weather Channel. Unauthorized use is prohibited. Copyright 1995-2005, The Weather Channel Interactive, Inc. All Rights Reserved.-->
<search ver="2.0">
<loc id="YIXX0023" type="1">Kraljevo, Serbia And Montenegro</loc>
</search>

sto mi i treba.
ALI kada izvrsim ovu skriptu:

include "Snoopy.class.php";
$snoopy = new Snoopy;
$snoopy->fetch("http://xoap.weather.com/search/search?where=Kraljevo");
echo $snoopy->results;

ona me baci na neki link (trenutni podaci za kraljevo sa svim slicicama sa weather channela!) koji nisam uspeo da nadjem na weather.com-u!

skriptu sam uploadovao ovde:
http://www.cakucica.net/vreme/gen_weather.php

tako da mozete da vidite sta se desava...


hvala unapred na pomoci!

krcko

krcko
17. 03. 2006., 03:57
Problem resen! :)

palo mi je napamet da jednostavno ucitam link u file() i radi! :)
samo sto prvo proverim dal je server aktivan, evo koda:

$url = "http://xoap.weather.com/search/search/index.php?where=Kraljevo";
$urldata = parse_url($url);
$serveractive = fsockopen($urldata['host'], 80, $errno, $errstr, 1);
if ($serveractive) print_r(file($url));

i lepo dobijem ovo:

Array
(
[0] => <?xml version="1.0" encoding="ISO-8859-1"?>

[1] => <!--This document is intended only for use by authorized licensees of The Weather Channel. Unauthorized use is prohibited. Copyright 1995-2005, The Weather Channel Interactive, Inc. All Rights Reserved.-->

[2] => <search ver="2.0">

[3] => <loc id="YIXX0023" type="1">Kraljevo, Serbia And Montenegro</loc>

[4] => </search>

[5] =>

)

sto mi i treba :)

pozdrav svima i izvinite sto sam postavio pitanje na koje sam sam dao odgovor :D

bluesman
17. 03. 2006., 04:16
Ne izvinjavaj se, veruj mi da nema ništa bolje od toga :)

noviKorisnik
17. 03. 2006., 09:03
Jeste, sad svi znamo kako se preuzima vremenska prognoza za Kraljevo :-D

dinke
17. 03. 2006., 11:51
Ne izvinjavaj se, veruj mi da nema ništa bolje od toga :)
Ima i zove se Curl. Slazem se da ova varijanta sa fsockopen radi posao, a isto si mogao sa fopen (ako je allow_url_fopen ukljuceno) pa cak i sa raw level socketima. Problem sa svim tim funkcijama su perfomanse. Na osnovu mog iskustva, Curl je jedno 10-tak puta brzi fsockopen. To naravno nije bitno kad ti treba jedan fajl, ali u slucajevima kada imas hiljade takvih konekcija, to itekako dolazi do izrazaja.

bluesman
17. 03. 2006., 13:49
Dinke, nisi se naspavao :)

Nisam mislio da nema ništa bolje od ovoga što je napravio nego sam komentarisao njegovo izvinjavanje zato što je sam sebi dao odgovor na pitanje. Za TO sam rekao da nema ništa bolje :)

noviKorisnik
17. 03. 2006., 14:07
Ovde je Curl isključen u prvoj poruci ... varijanta - a šta ako ga nema ;-)

jasmanac
17. 03. 2006., 14:18
E Dinke, Dinke... spavaj malo duze :P

dinke
17. 03. 2006., 15:06
Ovde je Curl isključen u prvoj poruci ... varijanta - a šta ako ga nema ;-)
Tek sad videh, izvinjavam se :1064:

U svakom slučaju, sve što sam rekao vezano za sporost socket f-ja u PHP-u - stoji.

krcko
19. 03. 2006., 02:06
znam da je ovaj moj nacin sporiji nego cUrl ali kao sto sam rekao ne mogu da koristim cUrl pa sam morao da se snalazim :)
A ionako skripta vuce najvise tri (mada najcesce 1) fajla koji su 1mb i manji tako da ovde cUrl i ne treba.

sto se tice moje skripte radim na verziji 0.3 (necu da vas zamaram istorijom skripte :p) ciju beta verziju mozete da isprobate ovde:
http://www.cakucica.net/vreme/test/

a i okacio sam je uz ovaj post cisto ako nekome zatreba...

(da bi isprobali skriptu kod vas moracete da se registrujete na weather.com-u za weather xml data feed na ovoj atresi: https://registration.weather.com/registration/xmloap/step1)

pozdrav svima!


zaboravio sam da vas pitam da ne znate mozda sta su:
- Maximum wind gust speed
- Dew point

engleski mi ne ide bas najbolje :)