Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Scrape image source

[es] :: PHP :: Scrape image source

[ Pregleda: 1620 | Odgovora: 12 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

vlada-kg
student

Član broj: 293020
Poruke: 36
*.dynamic.sbb.rs.



+1 Profil

icon Scrape image source02.11.2011. u 19:21 - pre 151 meseci
Da li moze neko da mi pomogne sa pronalazenjem source za slike na nekom web sajtu. Znam da skinem sliku i smestim je gde zelim, ali ne znam da napravim da program sam pronalazi linkove do slika, umesto ja rucno da radim. Da li to moze da se uradi uz pomoc PHP-a i kako?
 
Odgovor na temu

dakipro
Dalibor Jovic
Web Developer
Bergen, Norway

Moderator
Član broj: 31848
Poruke: 1792
*.dynamic.sbb.rs.

Sajt: norway.dakipro.com


+190 Profil

icon Re: Scrape image source02.11.2011. u 19:52 - pre 151 meseci
uglavnom moze da se uradi putem php-a, najverovatnije ti je najlakse koristeci regular expression. E sad, ako se link do slike kreira nakon prikaza stranice preko JS-a, to onda moze da bude malo problematicno.
 
Odgovor na temu

vlada-kg
student

Član broj: 293020
Poruke: 36
*.dynamic.sbb.rs.



+1 Profil

icon Re: Scrape image source02.11.2011. u 22:20 - pre 151 meseci
Probao sam regular expression, ali nikako da se snadjem ja sa onim. Jel mozes mozda da mi pokazes na nekom konkretnom modelu pa da ja probam posle da ga prilagodim svojim potrebama?
 
Odgovor na temu

Zlatni_bg
Nikola S
Beograd

Član broj: 65708
Poruke: 4420
*.dynamic.sbb.rs.



+498 Profil

icon Re: Scrape image source02.11.2011. u 23:32 - pre 151 meseci
Ukoliko poznajes PHP, evo ti dva korisna regular expressiona:


~<img([^>]+)>~i -> pronalazi img tagove u HTML kodu
~src=['"]([\w\.\-]+(\.gif¦\.jpe?g))['"]~i -> uzima src atribut, tacnije link do tvoje slike

Ukoliko ne poznajes, reci, objasnicu ti ukratko sta treba da radis :)
Lako mozes napraviti program da ti izbacuje linkove do svih slika. Ono sto bi ti mozda takodje pomoglo je automatsko cuvanje tih slika, cisto jedna ideja.

THE ONLY EASY DAY WAS YESTERDAY
 
Odgovor na temu

ivan.a
PHP developer

Član broj: 83976
Poruke: 403
*.dynamic.isp.telekom.rs.



+44 Profil

icon Re: Scrape image source03.11.2011. u 02:59 - pre 151 meseci
Pored regular expressiona možeš koristiti DOM


Code:
  $url = file_get_contents("http://website.com");
  $dom = new DOMDocument();
  @$dom->loadHTML($url);
  $xpath = new DOMXPath($dom);
  $entries = $xpath->query('//img');

foreach($entries as $e) {
echo $e->getAttribute("src");
}

I hope I didn't brain my damage - Homer
if (wife.position == kitchen) {return sandwich};
 
Odgovor na temu

vlada-kg
student

Član broj: 293020
Poruke: 36
*.dynamic.sbb.rs.



+1 Profil

icon Re: Scrape image source03.11.2011. u 09:09 - pre 151 meseci
Probao sam DOM, ali mi on poskida linkove za sve slike, ne znam kako da ga namestim samo za odredjene.

Sto se tice:

Code:
~<img([^>]+)>~i -> pronalazi img tagove u HTML kodu
~src=['"]([\w\.\-]+(\.gif¦\.jpe?g))['"]~i -> uzima src atribut, tacnije link do tvoje slike


Uspeo sam nesto sa ovim, ali samo malo sam napredovao.

Da uzmemo npr. sledeci link kao primer: link

Link do glavne slike sam uspeo da skinem pomocu ovog koda (koji sam inace nasao na netu) :
Code:
$arr['poster'] = $this->match('/img_primary">.*?<img src="(.*?)".*?<\/td>/ms', $html, 1); 


E sad sam pokusao da uzmem slike glumaca i da ih ubacim u array, ali nisam uspeo. Probao sam na sledeci nacin:

Code:
                

$arr['slike'] = array();
        foreach($this->match_all('/primary_photo">.*?<img src="(.*?)".*?<\/td>/ms', $html, 1) as $m)  
        {
            array_push($arr['slike'], trim);
        }


Sto se tice kasnijeg automatskog cuvanja slika, to mi nije tesko. Znam da baratam sa podacima kad ih imam, samo ne znam da dodjem do njih. Prvi put sam sad koristio regular expression pa ne mogu bas najbolje da se snadjem.

Jel moze pomoc sa ovim?




 
Odgovor na temu

ivan.a
PHP developer

Član broj: 83976
Poruke: 403
*.dynamic.isp.telekom.rs.



+44 Profil

icon Re: Scrape image source03.11.2011. u 11:03 - pre 151 meseci
Citat:
vlada-kg: Probao sam DOM, ali mi on poskida linkove za sve slike, ne znam kako da ga namestim samo za odredjene.


DOM primer:
Code:
 $entries = $xpath->query('//table/tr/td[@id="img_primary"]/a/img');

Dobijaš sliku iz tabele koja ima sledeće: <td id="img_primary">. Mnogo je lakše i preciznije nego regex, ako se ne varam.

I hope I didn't brain my damage - Homer
if (wife.position == kitchen) {return sandwich};
 
Odgovor na temu

vlada-kg
student

Član broj: 293020
Poruke: 36
*.dynamic.sbb.rs.



+1 Profil

icon Re: Scrape image source03.11.2011. u 11:23 - pre 151 meseci
Da, sa ovim kodom dobijam sliku iz celije <td id="img_primary">. Ali ne mogu na isti nacin da dobijem sliku glumaca koji se nalaze u celiji <td id="primary_photo">, i da ih poredjam u array. Kako bi to uradio preko DOM-a? Zbog toga sam misli da je regex bolji.
 
Odgovor na temu

ivan.a
PHP developer

Član broj: 83976
Poruke: 403
*.dynamic.isp.telekom.rs.



+44 Profil

icon Re: Scrape image source03.11.2011. u 11:33 - pre 151 meseci
Pa isto kao sa regex.

upit ti je dakle ...td[@id="img_primary"] itd.

$slike = array();
U petlji generišeš niz:
$slike[] = $e->getAttribute("src");
I hope I didn't brain my damage - Homer
if (wife.position == kitchen) {return sandwich};
 
Odgovor na temu

vlada-kg
student

Član broj: 293020
Poruke: 36
*.dynamic.sbb.rs.



+1 Profil

icon Re: Scrape image source03.11.2011. u 11:38 - pre 151 meseci
Nece da radi, ili ja ne znam lepo da napisem. Da li si probao kod tebe da li radi?
 
Odgovor na temu

ivan.a
PHP developer

Član broj: 83976
Poruke: 403
*.dynamic.isp.telekom.rs.



+44 Profil

icon Re: Scrape image source03.11.2011. u 11:59 - pre 151 meseci
Naravno da radi.

Ne treba ti src od slike glumaca pošto imdb koristi sistem za "učitavanje slika sa kašnjenjem" (prvo se učita dummy sličica) .
Treba ti "loadlate" atribut. Pogledaj source stranice i probaj linkove da bi znao koje elemente trebaš da uzimaš.

Zaboravih da ti napišem query:
Dakle...
$entries = $xpath->query('//table/tr/td[@class="primary_photo"]/a/img');
Petlja:
$img = $e->getAttribute('loadlate');
I hope I didn't brain my damage - Homer
if (wife.position == kitchen) {return sandwich};
 
Odgovor na temu

vlada-kg
student

Član broj: 293020
Poruke: 36
*.dynamic.sbb.rs.



+1 Profil

icon Re: Scrape image source03.11.2011. u 12:33 - pre 151 meseci
Sad radi :). Ali opet imam problem. Zamisli ovakvu situaciju, ja na jednoj stranici unesem url u input field neke forme, i ta forma salje te podatke na obradu u stranicu proba.php. Tu upisem sledeci kod:
Code:
  $url = file_get_contents("http://www.imdb.com/title/tt0221027/");
  $dom = new DOMDocument();
  @$dom->loadHTML($url);
  $xpath = new DOMXPath($dom);
$entries = $xpath->query('//table/tr/td[@class="primary_photo"]/a/img');

foreach($entries as $e) {
echo $img = $e->getAttribute('loadlate');
}


E sad meni ne treba na toj stranici proba.php da mi izlista linkove, nego treba da mi vrati na prehtodnu u nekoj ovoj formi:

Slika1: link_prve_slike
Slika2: link_druge_slike
Slika3: itd...

Kako da vratim taj array? Probao sam da zamenim echo sa return ali ne funkcionise.
 
Odgovor na temu

vlada-kg
student

Član broj: 293020
Poruke: 36
*.dynamic.sbb.rs.



+1 Profil

icon Re: Scrape image source03.11.2011. u 13:10 - pre 151 meseci
Da ne verujes, snasao sam se :) . Hvala puno..pozz
 
Odgovor na temu

[es] :: PHP :: Scrape image source

[ Pregleda: 1620 | Odgovora: 12 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.