fetch podataka sa drugih sajtova
Ima li nacina da preuzmem pojedne podatke sa drugih sajtova i da ih postavim u xml fajl. npr. odredjeni div id ili naslov ili sliku pa da sve zajedno napravim xml fajl... kao sto funcionise agregatori vesti ali bez rss-a jer sajtovi sa kojih treba da preuzmem sadrzaj nemaju rss feed. HELP Hvala unapred!
|
http://en.wikipedia.org/wiki/Web_scraping
Npr. mi koristimo Mechanize (http://mechanize.rubyforge.org/mecha...UIDE_rdoc.html) |
A mi koristimo custom scrapping: curl za fetchovanje i regular expression za parsiranje podataka :)
|
^ http://stackoverflow.com/questions/1...732454#1732454
Ako je validan HTML onda nije problem... Uglavnom cURL u svakom slučaju i RegEx i http://htmlpurifier.org/, da ekstraktuješ HTML... Pretpostavljam da je PHP u pitanju. Ako ti treba konkretan primjer, postavi konkretan link :) Edit: Promašio si podforum. |
Pogledaj i ovo: http://simplehtmldom.sourceforge.net/ [php]
|
^ kad smo kod toga... http://webarto.com/82/php-simple-html-dom-curl
Što je dinke spomenuo možeš ovako: http://www.dizajnzona.com/forums/ind...howtopic=82361 |
Ono sto meni treba je da izvucem naslove i po jednu sliku (danasnje ponude) sa sajtova kupime.rs kolektiva.rs i sl.
Hvala svima na korisnim informnacijama. |
Daj šta teže :1056:
PHP kôd:
Citat:
|
Ocigledno server na kome hostujem nema instaliran curl:
Fatal error: Call to undefined function curl() in /home/untitled-1.php on line 2 ali ok ... snacicu se ... znas li mozda kako da izvucem lan i lgt kordinate koje se nalaze na toj strani na google mapi i da to sve stavim u jedan xml fajl... Hvala na pomoci. |
Imaš vjerovantno ovo je samo helper funkcija, dodaj pa pokuašaj opet...
PHP kôd:
|
Hvala druze, dugujem pivo :) !
|
Ako koristiš python probaj http://scrapy.org/ isto tako postoji i Mech za python http://wwwsearch.sourceforge.net/mechanize/
Isto tako ako koristiš javu baci pogled ovde http://htmlunit.sourceforge.net/gettingStarted.html |
Uradio sam sve i poprilicno je dobro medjutim primetio sam da neki sajtovi kao sto je npr. kupime.com imaju i vise od 10 aktivnih ponuda. www.kupime.com/aktivne-ponude/ E sad zelim da pratim sve linkove(sve ponude) sa adrese www.kupime.com/aktivne-ponude/ ne samo glavnu stranu pa me interesuje da li je moguce to izvesti. tj. nesto kao indeksiranje... da se najpre preuzmu linkovi sa navedene URL adrese pa da se zatim svaka strana posebno obradi... HELP!
|
^ Pa sve si sam lepo objasnio šta treba. :)
|
Znam ja sta treba al ne bas i sintaksu za pisanje ... potrazicu na netu sigurno ima nesto o tome.
|
Npr. na brzinu preuzimenje linkova:
Kôd:
$dom = new DOMDocument(); Kôd:
$dom = new DOMDocument(); https://addons.mozilla.org/en-us/fir...ddon/firepath/ Pozdrav. |
Ok, super. Da li bi moglo da se nekom petljom foreach ili sl. za loadhtmlfile tj. da kada se linkovi preuzmu da se automatski obradjuju strane jedna po jedna. Da li da se napise if petljom. Neznam bas xml dom sintaksu pa me zanima kako da dodam promenjlive za ove vrednosti ''description'' ''img'' i ostale... moze li ovako
$data["slika"] => $xpath->query("//div[@id='description']")->item(0)->textContent; kako bi zatim $data vrednost unela u mysql bazu... Hvala svima na pomoci. Takodje sta da postavim kako bi resio problem sa slovim sa kvacicama... npr. evo sta izadje: "promeniće Vaš look i spasiti Vas dugotrajnih feniranja. Kažu da žene uvek hoće ono što nemaju" |
npr.
PHP kôd:
A za problem sa enkodingom proveri da li je enkoding php stranice uft8. |
Svaka cast... extra. Probao sam na razne nacine da izvucen lng= , i lang= , iz coda ali bez uspeha... da li je to uopste moguce s obzirom da su lng i lang koordinate u javascript-u na strani.
Sto se tice dovlacenja nije problem jer dovlacenje vrsim preko cron-a na nekoliko sati i upisujem u bazu. Pozdrav! |
PHP kôd:
|
Sada sam isprobao ovaj gore kod da ukombinujem sa ostatkom i video da ima malih problema, evo malo izmenjen kod:
PHP kôd:
|
Kod je dobar i cini mi se da je ovo bolje resenje nego upotreba cURL-a ... Hvala na pomoci!
|
Kod je dobar i cini mi se da je ovo bolje resenje nego upotreba cURL-a ... Hvala na pomoci!
|
Nema na čemu. :)
Možeš i ovde koristiti cURL umesto $dom->loadHTMLFile() za "dovlačenje" sadržaja, pa posle umesto navedenog metoda koristiti: $dom->loadHTML($sadrzaj_dobijen_pomocu_curl); Samo obrati pažnju i na: http://rs.kolektiva.net/o-kolektivi/uslovi-koriscenja |
Neznam sto bi se oni protivili kad ja samo hocu da napravim agregator ponuda samo bi dobili reklamu plus ali kontaktiracu ih...
Ej kako da izvucem iz div id-a samo jednu klasu npr. klasu "value" ili sl. treba mi samo sintaksa za pisanje |
Citat:
Kôd:
elemenat[@class='value'] http://www.w3schools.com/xpath/default.asp http://www.w3.org/TR/xpath/ |
Hvala na informacijama, znas li neki softver za pomoc pri radu sa xml-om xpath-om
|
Iskreno, ne bih znao da ti preporučim neki jer ne koristim nijedan, jedino ovo
https://addons.mozilla.org/en-us/fir...ddon/firepath/ što sam bio napisao u jednoj od prethodnih poruka, čak i na ovo zaboravim da imam kada isprobavam neke stvari :). Pozdrav. |
E jesam malo naporna ali nisam nasao na netu odgovor na pitanje ... kako u mysql bazu koju imam uneti sliku a ne njenu adresu kao sto je izvuceno xml-om. Postoji li neka posebna funcija u xpath. Znaci treba mi slika da se unese u mysql a ne njena adresa na sajtu. Pozdrav!
|
Da bi se slika unela u bazu ili neki folder (file sistem) potrebno je da na osnovu njene adrese, koje je dobijena iz HTML koda, "dovuče" pomoću npr. cURL, file_get_contents ... i zatim snimi u bazu/folder. XPath ne služi za to.
Pozdrav. |
Mislim da si mislio na Regular Expressions, cURL je u svakom pogledu bolji od file_get_contents :)
|
Koriscenjem funcije file_get_contents dobijam neki kod:
%�&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz� �������������������������������������������������� �����������������������?��(��(��(��(��(�t����f�YMș��觍�=O`8�k�u��Ӵ{��9�XS�~u ... jel to moja greska ili se tako upisuje kod u bazu |
U najboljem slucaju izadje mi: Resource id #20
Imam ovo: $data2['img'] = file_get_contents('http://www.kupime.com'."/". $data['slika']); $im = imagecreatefromstring($data2['img']); print ($im); Gde gresim? |
Na grešiš još.
Tako i treba da izgleda, to je binarni sadržaj slike. To treba da snimiš u bazu. Pogrešićeš ako budeš pokušao da je snimiš u 'varchar' ili 'text' polje, jer ti tipovi nisu binary-safe. Treba to polje tipa 'blob'. |
Da li postoji mogucnost da se za sve sajtove koji sadrze dnevne ponude napise neki univerzalni kod ... neko indeksiranje ili je to tesko izvodljivo...
|
E sad da bih izvukao podatke iz baze imam sledeci kod:
<?php header("Content-type: text/xml"); $host = "localhost"; $user = "root"; $pass = ""; $database = "test"; $linkID = mysql_connect($host, $user, $pass) or die("Could not connect to host."); mysql_select_db($database, $linkID) or die("Could not find database."); $query = "SELECT * FROM tabela ORDER BY ID DESC"; $resultID = mysql_query($query, $linkID) or die("Data not found."); $xml_output = "<?xml version=\"1.0\"?>\n"; $xml_output .= "<entries>\n"; for($x = 0 ; $x < mysql_num_rows($resultID) ; $x++){ $row = mysql_fetch_assoc($resultID); $xml_output .= "\t<entry>\n"; $xml_output .= "\t\t<ID>" . $row['ID'] . "</ID>\n"; // Escaping illegal characters $row['text'] = str_replace("&", "&", $row['text']); $row['text'] = str_replace("<", "<", $row['text']); $row['text'] = str_replace(">", ">", $row['text']); $row['text'] = str_replace("\"", """, $row['text']); $xml_output .= "\t\t<text>" . $row['text'] . "</text>\n"; $xml_output .= "\t</entry>\n"; } $xml_output .= "</entries>"; echo $xml_output; ?> Medjutim izadje mi greska: error on line 16 at column 39: Document is empty Zna li neko sta je u pitanju? |
Ovaj ?> ti zatvori <?php sa početka, a ne ono što si ti hteo.
Možda ima lepše, ja ovako radim: $xml_output = '<' . '?' . 'xml version="1.0" ' . '?' . '>'; |
E to je reseno, medjutim sad prikazuje gresku na 36 redu kolona 3... to je poslednja linija kod... a nevidim iznad gde je pre toga zatvoren php
Probao sam inekoliko drugih nacina medjutim svuda izadje da je greska na poslendjoj liniji i to: error on line 50 at column 3: Extra content at the end of the document |
kako izgleda xml koji se otprinta? Neki tag ti nije dobro zatvoren
|
Kao xml kod koji sam gore naveo s tim sto sam uneo predlog srdjana da promenim jednu liniju koda...
|
Vreme je GMT +2. Trenutno vreme je 18:55. |
Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright © DevProTalk. All Rights Reserved.