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

Skidanje podataka sa interneta pomocu PHP

[es] :: PHP :: Skidanje podataka sa interneta pomocu PHP

[ Pregleda: 2351 | Odgovora: 13 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

nepoverljiv
student
Kragujevac, Srbija

Član broj: 226360
Poruke: 131
*.dynamic.sbb.rs.



+2 Profil

icon Skidanje podataka sa interneta pomocu PHP23.07.2011. u 12:12 - pre 155 meseci
Pozdrav, posto volim da skupljam serije resio sam da ubijem vreme tako sto bi napravio neki katalog za moju kolekciju (posto nisam video da ima neki solidan program za serije, kao sto ima za filmove npr. Movie Collectorz). Taj katalog bi napravio pomocu PHP/MySQL i koristio bi ga pomocu browser-a. Nije mi problem sve to da dizajniram, i odradim, ali sam mislio ako mogu da izbegnem neke stvari rucno da odradim.

Na primer, uzmem neku seriju, i hocu da je ubacim, voleo bih kada bi moglo da mi PHP (posto njega "znam", neke druge programe slicne vrste ne znam) povuce sa IMDB informacije o toj seriji. Da ja samo ubacim link a da PHP sam "skine" ko glumi i ostale detalje koji se nalaze na toj strani i da ubaci u bazu.

Da li neko zna prvenstveno da li ovakva mogucnost postoji, i ako postoji na koji nacin to odraditi?

Hvala unapred na odgovorima
 
Odgovor na temu

stevs986
Nikolic Sladjan
Senior Software Developer
Alterset d.o.o
Beograd

Član broj: 121154
Poruke: 140
*.uforce.net.



+4 Profil

icon Re: Skidanje podataka sa interneta pomocu PHP23.07.2011. u 13:35 - pre 155 meseci
Naravno da moze da se uradi, pitanje je samo koliki ti je budzet za to... ?
 
Odgovor na temu

nepoverljiv
student
Kragujevac, Srbija

Član broj: 226360
Poruke: 131
*.dynamic.sbb.rs.



+2 Profil

icon Re: Skidanje podataka sa interneta pomocu PHP23.07.2011. u 14:09 - pre 155 meseci
Budzet mi je sledeci: ako uspem uz neki savet da napravim to sam, extra, ako ne uspem ima sve da ubacujem rucno. To zelim da napravim samo za moje potrebe i za neki moj hobi (skupljanje serija), tako da ne bi da bacam pare za to.
 
Odgovor na temu

Br@nkoR
http://localhost

Član broj: 2597
Poruke: 1603

Sajt: localhost


+23 Profil

icon Re: Skidanje podataka sa interneta pomocu PHP23.07.2011. u 14:14 - pre 155 meseci
Web scraping

cURL
RegExp
DOM
...
Banned - Not available
 
Odgovor na temu

Zlatni_bg
Nikola S
Beograd

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



+498 Profil

icon Re: Skidanje podataka sa interneta pomocu PHP23.07.2011. u 15:02 - pre 155 meseci
Ili tebra pogledaj kako je neko drugi to resio :)

http://davidwalsh.name/php-imdb-information-grabber

Regex/cURL resenje.
THE ONLY EASY DAY WAS YESTERDAY
 
Odgovor na temu

nepoverljiv
student
Kragujevac, Srbija

Član broj: 226360
Poruke: 131
*.dynamic.sbb.rs.



+2 Profil

icon Re: Skidanje podataka sa interneta pomocu PHP23.07.2011. u 15:24 - pre 155 meseci
Hvala na odgovorima
 
Odgovor na temu

Miroslav Ćurčić
ex mVeliki
Novi Sad

Član broj: 19034
Poruke: 1118
*.adsl.eunet.rs.



+19 Profil

icon Re: Skidanje podataka sa interneta pomocu PHP24.07.2011. u 12:38 - pre 154 meseci
Obrati pažnju da sam IMDB nudi pristup svojoj bazi, na legalan način, tako da ti CURL verovatno neće ni trebati.
"The quieter you become, the more you are able to hear."
Blog | PowerCMS
 
Odgovor na temu

nepoverljiv
student
Kragujevac, Srbija

Član broj: 226360
Poruke: 131
*.dynamic.sbb.rs.



+2 Profil

icon Re: Skidanje podataka sa interneta pomocu PHP06.08.2011. u 18:07 - pre 154 meseci
Aj da ne otvaram novu temu za stari problem :) Nasao sam neku skriptu za skidanje podataka sa IMDB-a, i poceo da je prilagodjavam sebi. E sad su tu nastali problemi. Kad skinem podatke, nije mi problem da napravim varijable od onih podataka koje nisu array, ali kad treba da uzmem podatke iz array-a ne mogu da se snadjem. Naime, kod mi glumce skine kao array i poredja ih jednog ispod drugog. E sad ja hocu da uzmem svakog glumca (ime i prezime) kao posebnu varijablu i da ga ubacim u bazu. Kod za prikazivanje podataka mi izgleda ovako:

Code:

<?php
include("imdb.php");
 
$imdb = new Imdb();
$movieArray = $imdb->getMovieInfo("The Godfather"); /* ovako mi lista sve sto dobije od podatala */    
echo '<table cellpadding="3" cellspacing="2" border="1" width="80%" align="center">';
foreach ($movieArray as $key=>$value){
    $value = is_array($value)?implode("<br />", $value):$value; /
    echo '<tr>';
    echo '<th align="left" valign="top">' . strtoupper($key) . '</th><td>' . $value . '</td>';
    echo '</tr>'; 
}
echo '</table>';

echo $movieArray['title'] ;  /* a ovako uzimam pojedinacan podatak, ako nije array */



Kod za prikupljanje podataka mi izgleda ovako:

Code:

<?php
class Imdb
{  
    function getMovieInfo($title)
    {
        $arr = array();
        $imdbUrl = 'http://www.imdb.com/title/tt0387199/';
        if($imdbUrl === NULL){
            $arr['error'] = "No Title found in Search Results!";
            return $arr;
        }
        $html = $this->geturl($imdbUrl);
        if(stripos($html, "<meta name=\"application-name\" content=\"IMDb\" />") !== false){
            $arr = $this->scrapMovieInfo($html);
            $arr['imdb_url'] = $imdbUrl;
        } else {
            $arr['error'] = "No Title found on IMDb!";
        }
        return $arr;
    }
     
     
    // Scan movie meta data from IMDb page
    function scrapMovieInfo($html)
    {
        $arr = array();
        $arr['title_id'] = $this->match('/<link rel="canonical" href="http:\/\/www.imdb.com\/title\/(tt[0-9]+)\/" \/>/ms', $html, 1);
        $arr['title'] = trim($this->match('/<title>(IMDb \- )*(.*?) \(.*?<\/title>/ms', $html, 2));
        $arr['year'] = trim($this->match('/<title>.*?\(.*?([0-9][0-9][0-9][0-9]).*?\).*?<\/title>/ms', $html, 1));
        $arr['rating'] = $this->match('/>([0-9].[0-9])<\/b><span class="mellow">\/10/ms', $html, 1);
        $arr['genres'] = array();
        foreach($this->match_all('/<a.*?>(.*?)<\/a>/ms', $this->match('/Genre.?:(.*?)(<\/div>|See more)/ms', $html, 1), 1) as $m)
        {
           array_push($arr['genres'], $m);
        }
        
        $arr['creator'] = array();
        foreach($this->match_all('/<a.*?>(.*?)<\/a>/ms', $this->match('/Creator.?:(.*?)(<\/div>|>.?and )/ms', $html, 1), 1) as $m)
        {
            array_push($arr['creator'], $m);
        }
        $arr['cast'] = array();
        foreach($this->match_all('/<td class="name">(.*?)<\/td>/ms', $html, 1) as $m) 
        {
            array_push($arr['cast'], trim(strip_tags($m)));
        }
        $arr['karakteri'] = array();
        foreach($this->match_all('/<td class="character">(.*?)<\/td>/ms', $html, 1) as $m) 
        {
            array_push($arr['karakteri'], trim(strip_tags($m)));
        }
    
        //Get extra inforation on  Release Dates and AKA Titles
        
        $arr['runtime'] = trim($this->match('/Runtime:<\/h4>.*?([0-9]+) min.*?<\/div>/ms', $html, 1));
        if($arr['runtime'] == '') $arr['runtime'] = trim($this->match('/infobar.*?([0-9]+) min.*?<\/div>/ms', $html, 1));
        $arr['awards'] = trim($this->match('/([0-9]+) wins/ms',$html, 1));
        $arr['nominations'] = trim($this->match('/([0-9]+) nominations/ms',$html, 1));
        $arr['storyline'] = trim(strip_tags($this->match('/Storyline<\/h2>(.*?)(<em|<\/p>|<span)/ms', $html, 1)));
 
        return $arr;      
    }
    // ************************[ Extra Functions ]******************************
    function geturl($url)
    {
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
        curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 5.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1");
        $html = curl_exec($ch);
        curl_close($ch);
        return $html;
    }
 
    function match_all($regex, $str, $i = 0)
    {
        if(preg_match_all($regex, $str, $matches) === false)
            return false;
        else
            return $matches[$i];
    }
 
    function match($regex, $str, $i = 0)
    {
        if(preg_match($regex, $str, $match) == 1)
            return $match[$i];
        else
            return false;
    }
}
?>


E kako da uzmem podatke posebno tamo gde su array (primera radi kod :
$arr['genres'] = array();
foreach($this->match_all('/<a.*?>(.*?)<\/a>/ms', $this->match('/Genre.?:(.*?)(<\/div>|See more)/ms', $html, 1), 1) as $m)
{
array_push($arr['genres'], $m);
}). Sa ovim kodom on mi izbaci Comedy, Drama, a ja hocu ta dva da razdvojim i posebno da ih ubacim u dva razlicita polja u bazu.

Jel moze neko da pomogne?
 
Odgovor na temu

nepoverljiv
student
Kragujevac, Srbija

Član broj: 226360
Poruke: 131
*.dynamic.sbb.rs.



+2 Profil

icon Re: Skidanje podataka sa interneta pomocu PHP06.08.2011. u 20:05 - pre 154 meseci
Problem resen

Sad imam skoro sve sto mi je potrebno, fali moj samo par podataka i za jednu stvar da pitam da li moze.

Skidam sa stranice dosta podataka, ali bi voleo da skinem jos sledece podatke:

- koliko je ljudi glasalo
- za seriju koliko sezona ima
- podatke kod details (country, language, release date, filming location)

I pitam se da li moze mozda da skine i slicice glumaca :P

Jel moze pomoc sa ovim?
 
Odgovor na temu

Zlatni_bg
Nikola S
Beograd

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



+498 Profil

icon Re: Skidanje podataka sa interneta pomocu PHP07.08.2011. u 05:17 - pre 154 meseci
Pa naravno da moze, isto kao sto si uzeo i ostale podatke...

Za broj sezona ti pise Season: 5 4 3 2 1 ... tako da ti je broj sezona prvi broj posle Season.
Isto tako ispod imas i Details gde se nalaze ostali podaci koje si trazio. Sliku mozes da dobijes na vise nacina, mozes da uzmes link do slike pa da koristis direktnu sliku sa IMDB-a, mozes da je skines pa da je postavis na svoj sajt... zavisi sve sto zelis (kakvo pitanje takav odgovor :) ).
Nemoj da se ljutis, ali iz tvog pitanja kapiram da si ti samo nasao gotovu skriptu koja fetchuje IMDB podatke i da nisi mnogo gledao sta ona radi, inace ne bi pitao kako da dodjes do svih ovih podataka. Regex, regex, i samo regex. Bices zbunjen u pocetku, kad krenes da kapiras kako funkcionise, mocices lagano da napravis i to sto si hteo, i jos 50 stvari da ubacis.
THE ONLY EASY DAY WAS YESTERDAY
 
Odgovor na temu

nepoverljiv
student
Kragujevac, Srbija

Član broj: 226360
Poruke: 131
*.dynamic.sbb.rs.



+2 Profil

icon Re: Skidanje podataka sa interneta pomocu PHP07.08.2011. u 11:36 - pre 154 meseci
Pa to, nasao sam skriptu koja je radila ono sto meni treba. Malo sam je promenio, izbacio nepotrebne stvari, i ubacio nesto sto sam sam ukapirao (tipa zanr serije, filma). A sa ovim zajebancijama sto me jos zanima se nisam snasao, ali cu nadam se i to da provalim.

E sad da ti kazem za sta mi treba :) Ja volim da skupljam filmove, serije, igrice, koncerte i diskografije rok bendova. Za stanje i pretragu po diskovima koristim Where Is It. Pa sam onda uzeo Movie Collectorz i tu sam napravio katalog filmova da mi bude onako fensi. E kad sam hteo da napravim katalog za serije, nigde nisam nasao neki program koji bi mi se bas svideo, i onda sam odlucio da se malo zezam. Hocu da napravim sajt iskljucivo za kucnu upotrebu (znaci samo ce da bude na mom racunaru, nikako online), koji ce da bude nesto slicno IMDB-u, ali ce naravno da sadrzi filmove i serije koje ja imam u kolekciji. E sad da ne bi sve isao peske, pokusavam da napravim neku skripticu da mi pokupi sve podatke koje zelim, a ja samo da ubacim link, i to smesti sve kod mene u bazu. Nesto malo "znam" PHP pa sam zato krenuo preko njega da radim.

Sto se tice slika, vise bi voleo da ih skinem i drzim na svom racunaru, samo trailer-i sa youtub-a ce da mi budu u vidu linka (ako bi i njih poceo da pakujem mnogo bi mi mesta vec trebalo na hardu :) ).

Zezacu se i danas malo, ali imam neke obaveze pa cisto sumnjam da cuda uspem nesto da uradim. Zato sutra ima bas da navalim, pa ako malo napredujem pa opet zakocim okacicu ovde dokle sam stigao pa ako moze neka pomoc bilo bi extra :)

Pozdrav
 
Odgovor na temu

nepoverljiv
student
Kragujevac, Srbija

Član broj: 226360
Poruke: 131
*.dynamic.sbb.rs.



+2 Profil

icon Re: Skidanje podataka sa interneta pomocu PHP09.08.2011. u 14:05 - pre 154 meseci
Uspeo sam da pokupim sve podatke koje sam hteo za sada :) E sad, da li je nekako moguce i da skinem slike, znaci kad skidam podatke za seriju da skinem i sliku serije i ubacim je kod mene u zeljeni folder. A jos kad bi mogle da se poskidaju i slike glumaca bilo bi extra :))) . Jel moze neko sa ovim da mi pomogne?
 
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: Skidanje podataka sa interneta pomocu PHP09.08.2011. u 14:12 - pre 154 meseci
A gde ti je tacno problem? Mislim, napisi dokle si stigao pa je zapelo i gde ti tacno treba pomoc
 
Odgovor na temu

nepoverljiv
student
Kragujevac, Srbija

Član broj: 226360
Poruke: 131
*.dynamic.sbb.rs.



+2 Profil

icon Re: Skidanje podataka sa interneta pomocu PHP09.08.2011. u 14:30 - pre 154 meseci
Ovako sam ja to zamislio. Prvo imam formu u koju unosim url serije ili filma. Kad kliknem na submit otvara mi novu stranicu na kojoj je isto forma, ali je popunjena sa podacima koje sam skinuo sa IMDB, i sa jos nekim poljima koje rucno popunjavam (da li sam gledao film/seriju, moja ocena, itd..). Mogu u toj formi da napravim da sam rucno ubacujem slike, ali se sve nadam kad bi mogao i to da namestim automatski. Evo ti kod kako izgleda:

Stranica za ubacivanje URL serije ili filma :

Code:

<form name="url" action="index.php?=serije" method="post">
<table>
<tr>
        <td>Unesite URL:</td>
        <td><input type="text" name="naziv" size="70"></td>
</tr>
<tr><td></td><td><input type="submit" value="Submit" /></td></tr>
</table>
</form> 


Sa prethodne me salje na sledecu stranicu koja ima ovakav kod:

Code:

<?php
$imdbUrl = $_POST['naziv']; 

include("imdb.php");
 
$imdb = new Imdb();
$movieArray = $imdb->getMovieInfo("");

echo $success;

?>

               <form name="forma" enctype="multipart/form-data" action="addserije.php method="post">
<table>
<tr>
        <td>IMDB:</td>
        <td><input type="text" name="imdb_id" size="50" value="<?php echo $movieArray['title_id']; ?>"></td>
</tr>
<tr>
        <td>Ime serije:</td>
        <td><input type="text" name="name" size="50" value="<?php echo $movieArray['title'] ;  ?>"></td>
</tr>
<tr>
        <td>Godina:</td>
        <td><input type="text" name="year" size="50" value="<?php echo $movieArray['year'] ; ?>"></td>
</tr>
<tr>
        <td>IMDB rating:</td>
        <td><input type="text" name="rating" size="50" value="<?php echo $movieArray['rating'] ; ?>"></td>
</tr>
<tr>
        <td>IMDB glasova:</td>
        <td><input type="text" name="votes" size="50" value="<?php echo $votes ?>"></td>
</tr>
<tr>
        <td>Creator:</td>
        <td><input type="text" name="creator1" size="50" value="<?php print $movieArray['creator'][0];  ?>"></td>
</tr>
<tr>
        <td>Creator:</td>
        <td><input type="text" name="creator2" size="50" value="<?php print $movieArray['creator'][1]; ?>"></td>
</tr>
<tr>
        <td>Creator:</td>
        <td><input type="text" name="creator3" size="50" value="<?php print $movieArray['creator'][2]; ?>"></td>
</tr>
<tr>
        <td>Genres:</td>
        <td><input type="text" name="genres1" size="5" value="<?php print $movieArray['genres'][0]; ?>"> GB</td>
</tr>
<tr>
        <td>Genres:</td>
        <td><input type="text" name="genres2" size="5" value="<?php print $movieArray['genres'][1]; ?>"> GB</td>
</tr>
<tr>
        <td>Genres:</td>
        <td><input type="text" name="genres3" size="5" value="<?php print $movieArray['genres'][2]; ?>"> GB</td>
</tr>
<tr>
        <td>Genres:</td>
        <td><input type="text" name="genres4" size="5" value="<?php print $movieArray['genres'][3]; ?>"> GB</td>
</tr>
<tr>
        <td>Glumac:</td>
        <td><input type="text" name="cast1" size="50" value="<?php print $movieArray['cast'][0]; ?>"></td>
</tr>
<tr>
        <td>Glumac:</td>
        <td><input type="text" name="cast2" size="50" value="<?php print $movieArray['cast'][1]; ?>"></td>
</tr>
<tr>
        <td>Glumac:</td>
        <td><input type="text" name="cast3" size="50" value="<?php print $movieArray['cast'][2]; ?>"></td>
</tr>
<tr>
        <td>Glumac:</td>
        <td><input type="text" name="cast4" size="50" value="<?php print $movieArray['cast'][3]; ?>"></td>
</tr>
<tr>
        <td>Glumac:</td>
        <td><input type="text" name="cast5" size="50" value="<?php print $movieArray['cast'][4]; ?>"></td>
</tr>
<tr>
        <td>Glumac:</td>
        <td><input type="text" name="cast6" size="50" value="<?php print $movieArray['cast'][5]; ?>"></td>
</tr>
<tr>
        <td>Glumac:</td>
        <td><input type="text" name="cast7" size="50" value="<?php print $movieArray['cast'][6]; ?>"></td>
</tr>
<tr>
        <td>Glumac:</td>
        <td><input type="text" name="cast8" size="50" value="<?php print $movieArray['cast'][7]; ?>"></td>
</tr>
<tr>
        <td>Glumac:</td>
        <td><input type="text" name="cast9" size="50" value="<?php print $movieArray['cast'][8]; ?>"></td>
</tr>
<tr>
        <td>Glumac:</td>
        <td><input type="text" name="cast10" size="50" value="<?php print $movieArray['cast'][9]; ?>"></td>
</tr>
<tr>
        <td>Characters:</td>
        <td><input type="text" name="cast1" size="50" value="<?php print $movieArray['karakteri'][0]; ?>"></td>
</tr>
<tr>
        <td>Characters:</td>
        <td><input type="text" name="cast2" size="50" value="<?php print $movieArray['karakteri'][1]; ?>"></td>
</tr>
<tr>
        <td>Characters:</td>
        <td><input type="text" name="cast3" size="50" value="<?php print $movieArray['karakteri'][2]; ?>"></td>
</tr>
<tr>
        <td>Characters:</td>
        <td><input type="text" name="cast4" size="50" value="<?php print $movieArray['karakteri'][3]; ?>"></td>
</tr>
<tr>
        <td>Characters:</td>
        <td><input type="text" name="cast5" size="50" value="<?php print $movieArray['karakteri'][4]; ?>"></td>
</tr>
<tr>
        <td>Characters:</td>
        <td><input type="text" name="cast6" size="50" value="<?php print $movieArray['karakteri'][5]; ?>"></td>
</tr>
<tr>
        <td>Characters:</td>
        <td><input type="text" name="cast7" size="50" value="<?php print $movieArray['karakteri'][6]; ?>"></td>
</tr>
<tr>
        <td>Characters:</td>
        <td><input type="text" name="cast8" size="50" value="<?php print $movieArray['karakteri'][7]; ?>"></td>
</tr>
<tr>
        <td>Characters:</td>
        <td><input type="text" name="cast9" size="50" value="<?php print $movieArray['karakteri'][8]; ?>"></td>
</tr>
<tr>
        <td>Characters:</td>
        <td><input type="text" name="cast10" size="50" value="<?php print $movieArray['karakteri'][9]; ?>"></td>
</tr>
<tr>
        <td>Vreme trajanja:</td>
        <td><input type="text" name="time" size="50" value="<?php echo $movieArray['runtime'] ; ?>"></td>
</tr>
<tr>
        <td>Osvojene nagrade:</td>
        <td><input type="text" name="wins" size="50" value="<?php echo $movieArray['awards'] ; ?>"></td>
</tr>
<tr>
        <td>Nominacije:</td>
        <td><input type="text" name="nominations" size="50" value="<?php echo $movieArray['nominations'] ; ?>"></td>
</tr>
<tr>
        <td>Storyline:</td>
        <td><textarea name="story" rows=16 cols="60"><?php echo $movieArray['storyline'] ; ?></textarea></td>
</tr>
<tr>
        <td>URL:</td>
        <td><input type="text" name="url" size="50" value="<?php echo $imdbUrl; ?>"></td>
</tr>
<tr>
        <td>Gledao:</td>
            <td><input type="radio" checked="checked" name="gledao" value="0" /> Ne <input type="radio" name="gledao" value="1" /> Da</td></tr>
<tr>
        <td>Ocena:</td>
        <td><input type="text" name="rejting" size="50"></td>
</tr>

<tr></tr>
<tr><td></td><td align="left"><input type="submit" value="Submit"></td></tr>
</table><br>
</form>


I na kraju kod koji mi skida podatke:

Code:

<?php
/////////////////////////////////////////////////////////////////////////////////////////////////////////
// Free PHP IMDb Scraper API for the new IMDb Template.
// Version: 2.3
// Author: Abhinay Rathore
// Website: http://www.AbhinayRathore.com
// Blog: http://web3o.blogspot.com
// Demo: http://lab.abhinayrathore.com/imdb/
// More Info: http://web3o.blogspot.com/2010...per-for-new-imdb-template.html
// Last Updated: Aug 4, 2011
/////////////////////////////////////////////////////////////////////////////////////////////////////////
class Imdb
{  
    function getMovieInfo($title)
    {
        $arr = array();
        $imdbUrl = $_POST['naziv'];
        if($imdbUrl === NULL){
            $arr['error'] = "No Title found in Search Results!";
            return $arr;
        }
        $html = $this->geturl($imdbUrl);
        if(stripos($html, "<meta name=\"application-name\" content=\"IMDb\" />") !== false){
            $arr = $this->scrapMovieInfo($html);
            $arr['imdb_url'] = $imdbUrl;
        } else {
            $arr['error'] = "No Title found on IMDb!";
        }
        return $arr;
    }
     
     
    // Scan movie meta data from IMDb page
    function scrapMovieInfo($html)
    {
        $arr = array();
        $arr['title_id'] = $this->match('/<link rel="canonical" href="http:\/\/www.imdb.com\/title\/(tt[0-9]+)\/" \/>/ms', $html, 1);
        $arr['title'] = trim($this->match('/<title>(IMDb \- )*(.*?) \(.*?<\/title>/ms', $html, 2));
        $arr['year'] = trim($this->match('/<title>.*?\(.*?([0-9][0-9][0-9][0-9]).*?\).*?<\/title>/ms', $html, 1));
        $arr['rating'] = $this->match('/>([0-9].[0-9])<\/b><span class="mellow">\/10/ms', $html, 1);
        $arr['genres'] = array();
        foreach($this->match_all('/<a.*?>(.*?)<\/a>/ms', $this->match('/Genre.?:(.*?)(<\/div>|See more)/ms', $html, 1), 1) as $m)
        {
           array_push($arr['genres'], $m);
        }
        
        $arr['creator'] = array();
        foreach($this->match_all('/<a.*?>(.*?)<\/a>/ms', $this->match('/Creator.?:(.*?)(<\/div>|>.?and )/ms', $html, 1), 1) as $m)
        {
            array_push($arr['creator'], $m);
        }
        $arr['cast'] = array();
        foreach($this->match_all('/<td class="name">(.*?)<\/td>/ms', $html, 1) as $m) 
        {
            array_push($arr['cast'], trim(strip_tags($m)));
        }
        $arr['karakteri'] = array();
        foreach($this->match_all('/<td class="character">(.*?)<\/td>/ms', $html, 1) as $m) 
        {
            array_push($arr['karakteri'], trim(strip_tags($m)));
        }
    
        //Get extra inforation on  Release Dates and AKA Titles
        
        $arr['runtime'] = trim($this->match('/Runtime:<\/h4>.*?([0-9]+) min.*?<\/div>/ms', $html, 1));
        if($arr['runtime'] == '') $arr['runtime'] = trim($this->match('/infobar.*?([0-9]+) min.*?<\/div>/ms', $html, 1));
        $arr['awards'] = trim($this->match('/([0-9]+) wins/ms',$html, 1));
        $arr['nominations'] = trim($this->match('/([0-9]+) nominations/ms',$html, 1));
        $arr['storyline'] = trim(strip_tags($this->match('/Storyline<\/h2>(.*?)(<em|<\/p>|<span)/ms', $html, 1)));

        return $arr;      
    }
     

 
    
 
    // ************************[ Extra Functions ]******************************
    function geturl($url)
    {
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
        curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 5.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1");
        $html = curl_exec($ch);
        curl_close($ch);
        return $html;
    }
 
    function match_all($regex, $str, $i = 0)
    {
        if(preg_match_all($regex, $str, $matches) === false)
            return false;
        else
            return $matches[$i];
    }
 
    function match($regex, $str, $i = 0)
    {
        if(preg_match($regex, $str, $match) == 1)
            return $match[$i];
        else
            return false;
    }


}


E sad bi jos da skinem sliku serije ili filma koja stoji na imdb-u (mada mi za nju nije mnogo ni frka, to bi mogao i rucno da ubacujem), i najvise bi voleo kad bi mogao sa skinem one slicice glumaca i da ih smestim kod mene na racunar u odredjeni folder. Sta mislis, da li je to komplikovano odraditi?

 
Odgovor na temu

[es] :: PHP :: Skidanje podataka sa interneta pomocu PHP

[ Pregleda: 2351 | Odgovora: 13 ] > FB > Twit

Postavi temu Odgovori

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