Ingmaras
-
Pranešimai
445 -
Užsiregistravo
-
Lankėsi
-
Atsiliepimai
100%
Reputacijos išklotinė
-
Ingmaras sureagavo į Lapinskis Web scrapping naudojant PHP
Sveiki uždarbiečiai, jau vienur prisižadėjau, kad parašysiu šiek tiek apie web scrapping. Tai pirmas mano straipsnis šiame forume, todėl nemaišykit su žemėmis be pagrindo. Konstruktyvi kritika visada laukiama, o šiaip ir pasiginčyti galiu, jeigu atsiras žmonių, manančių, kad mano pateikti programinio kodo pavyzdžiai yra neteisingi ar, kad galima padaryti kažką geriau. Pats esu gana dar jaunas ir daug ko nemoku, tačiau trokštu išmokti. Iš savo, ir kitų mano artimųjų patirties galiu pasakyti, kad srities specialistu tampi mokydamas kitus.
Pradedant, norėčiau apžvelgti kam web scrapping gali būti panaudojamas. Šį metodą programuotojai naudoja tada, kuomet reikia gauti informacijos iš kitos svetainės ir nenorima dirbti "copy->paste" principu. Web scrapping tai padarys už jus. Kadangi daugiausia teko programuoti PHP programavimo kalba, tai tik ja galėsiu pateikti pavyzdžių.
Vogti/skolintis/pasiimti informaciją PHP pagalba iš kitų interneto svetainių galima keletu būdų. Tačiau aprašysiu tik du - vieną, kuris nepatogus ir jį naudojant gali prasidėti rimtas "galvos skausmas", ir antrą - kurį pats naudoju ir rekomenduoju naudoti kitiems.
Pirmasis būdas. Jame naudojama curl biblioteka, preg_match_all funkcija. Blogiausia šio metodo savybė - reikia rašyti regexp išraiškas. Man (spėju ir kitiems programuotojams) tai yra "pain in the ######". Šis metodas turi ir pliusų - juo parašyti script'ai veikia šiek tiek greičiau negu antruoju.
Daug netuščiažodžiaujant, štai kodo pavyzdys (ačiū Sauliui):
<?php function rasti_turini( $pradzia, $galas, $url ) { $pradzia = str_replace('/', '\/', $pradzia); $galas = str_replace('/', '\/', $galas); $regexp = '/' . $pradzia . '(.+?)' . $galas . '/'; preg_match_all($regexp, $url, $atitike); return $atitike[0]; } function curl( $url ) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $result = curl_exec($ch); curl_close($ch); return $result; } //magic (: $url = curl( 'http://www.orai.lt/lt/prognozes/vilnius' ); $orai = rasti_turini( '<td class="oraiTableRow">', '</td>', $url ); //atvaizduojame antrąjį masyvo elementą echo $orai[1]; //jeigu norite pažiūrėti, kaip atrodo gautas masyvas, atkomentuokite sekančias 3 eilutes //echo '<pre>'; //print_r( $orai ); //echo '</pre>'; ?>
Antrasis būdas. Tai mano mėgstamiausias, ir mano nuomone geriausias būdas gauti informaciją iš kito tinklalapio. Kaip taip padaryti? Ogi pasitelkti simple html DOM biblioteką. :) Jos pagalba galima rašyti elementų select'orius jQuery stiliumi.
Pvz.:
$html->find('table.bioTableAlt tbody tr');
Argi gali būti patogiau ir greičiau? :rolleyes:
Tarkim turime užduotį, mums reikia gauti visą geriausių teniso žaidėjų sąrašą iš šitos svetainės. Taip, visą 1000 :) Atkreipkite dėmesį, kad lentelė atnaujinama kiekvieną pirmadienį. Kad šis kodas veiktų, jums prireiks parsisiųsti simple html dom klasę.
Kodas:
<?php //nuimame laiko limita set_time_limit(0); //simple html dom include('simple_html_dom.php'); //------------------------------------------------------------------------------ // Nuorodos //------------------------------------------------------------------------------ //paskutinio pirmadienio data $date = date('d.m.Y', strtotime('last monday')); //užkomentuokit dali nuorodu, jeigu norit greiciau pamatyti rezultata $urls = array(); $urls[] = 'http://www.atpworldtour.com/Rankings/Singles.aspx?d='.$date.'&c=&r=1'; $urls[] = 'http://www.atpworldtour.com/Rankings/Singles.aspx?d='.$date.'&c=&r=101'; $urls[] = 'http://www.atpworldtour.com/Rankings/Singles.aspx?d='.$date.'&c=&r=201'; $urls[] = 'http://www.atpworldtour.com/Rankings/Singles.aspx?d='.$date.'&c=&r=301'; $urls[] = 'http://www.atpworldtour.com/Rankings/Singles.aspx?d='.$date.'&c=&r=401'; $urls[] = 'http://www.atpworldtour.com/Rankings/Singles.aspx?d='.$date.'&c=&r=501'; $urls[] = 'http://www.atpworldtour.com/Rankings/Singles.aspx?d='.$date.'&c=&r=601'; $urls[] = 'http://www.atpworldtour.com/Rankings/Singles.aspx?d='.$date.'&c=&r=701'; $urls[] = 'http://www.atpworldtour.com/Rankings/Singles.aspx?d='.$date.'&c=&r=801'; $urls[] = 'http://www.atpworldtour.com/Rankings/Singles.aspx?d='.$date.'&c=&r=901'; //inicijuojam masyvą $zaidejai $zaidejai = array(); //praskanuojam visas nuorodas foreach($urls as $url) { //gauname duomenis iš svetainės $html = file_get_html($url); foreach( $html->find('table.bioTableAlt tbody tr') as $a ) { // Duomenys apie žaidėją: // pozicija --- vardas, šalis --- žaidėjo taškai --- pozicijos pokytis --- turnyrų skaičius $zaidejas['pozicija'] = $a->children(0)->plaintext; $zaidejas['vardas'] = $a->children(1)->plaintext; $zaidejas['taskai'] = $a->children(2)->plaintext; $zaidejas['ppokytis'] = $a->children(3)->plaintext; $zaidejas['tskaicius'] = $a->children(4)->plaintext; $zaidejai[] = $zaidejas; } } //pašalinam nereikalingus masyvo elementus (lentelės heading'us) unset( $zaidejai[909] ); unset( $zaidejai[808] ); unset( $zaidejai[707] ); unset( $zaidejai[606] ); unset( $zaidejai[505] ); unset( $zaidejai[404] ); unset( $zaidejai[303] ); unset( $zaidejai[202] ); unset( $zaidejai[101] ); unset( $zaidejai[ 0 ] ); //sutvarkom array keys $zaidejai = array_values( $zaidejai ); //pažiūrim gautą masyvą echo '<pre>'; print_r( $zaidejai ); echo '</pre>'; ?>
Štai dar vienas pavyzdys, kuriame gauname filmo reitingą iš imdb.com:
<?php //simple html dom biblioteka include('simple_html_dom.php'); //filmo url $url = 'http://www.imdb.com/title/tt0485947/'; //gauname svetainės html $html = file_get_html($url); //gauname filmo reitingą $ratio = $html->find('span.rating-rating', 0)->plaintext; echo $ratio; ?>
Pabaigai, noriu paminėti, kad su web scrapping galima sukurti gausybę naudingų ir niekam nekenkiančių dalykėlių, tačiau su juo galima pilnai pavogti turinį is RSS srauto ar iš paprasčiausios svetainės. Bet kaip tai padaryti - susigalvokite patys.
Ir tikiuosi, jog jums patiko, bei buvo naudingas pirmasis mano straipsnis uždarbis.lt forume :)
-
Ingmaras sureagavo į Silke mysql_num_rows
Užtektų paskaityt PHP dokumentaciją, kad suprastum ką reiškia. Nepavykusios užklausos atveju, mysql_query grąžina FALSE :)
-
Ingmaras sureagavo į TDB Kuo dirbote užsienyje?
1. Norvegija
2. Pagalbinis slidinėjimo centre, o kai baigėsi kontraktas, pasiūlė kitą darbą - liepė tualetus ir kavines valyt naktim. Pradėjau ir mečiau, neapsikenčiau pats savęs, kad tai darau.. (keikiau visą pasaulį) Per vargus radau kitą darbą, projektuotoju (turėjau patirties LT), už pirmą projektą gavau 5000 lt (5 dienas dariau). Tada ir pajudėjo ledai.. Mečiau ir šitą darbą, įkūriau savo verslą, dabar mano klientai tie, kurie man liepė tualetus valyt..
3. Darbą gauti buvo sunku, lenkai už puse kainos visur sutinka dirbti..
4. Neparsivežiau nieko, nes dar negrįžau :) vežti bus ką.. B-)
Norintiems išvykti:
5. Ar būtumėte išvykęs iš Lietuvos, jei būtumėte žinojęs kas Jūsų lauks?
5. Ne, per vienus metus tokius kančios kelius praėjau, kiek per visą gyvenimą nekentėjau. Norit būti laikomi antrarūšiais, vergais ar samdiniais (pagražinau), pirmyn į kitas šalis..
-
Ingmaras gavo reakciją nuo lasickui Varom i užsieni ?
Lietuvos Respublikos Konstitucijos 25 straipsnis
Žmogus turi teisę turėti savo įsitikinimus ir juos laisvai reikšti. Žmogui neturi būti kliudoma ieškoti, gauti ir skleisti informaciją bei idėjas. Laisvė reikšti įsitikinimus, gauti ir skleisti informaciją negali būti ribojama kitaip, kaip tik įstatymu, jei tai būtina apsaugoti žmogaus sveikatai, garbei ir orumui, privačiam gyvenimui, dorovei ar ginti konstitucinei santvarkai. Laisvė reikšti įsitikinimus ir skleisti informaciją nesuderinama su nusikalstamais veiksmais - tautinės, rasinės, religinės ar socialinės neapykantos, prievartos bei diskriminacijos kurstymu, šmeižtu ir dezinformacija.
-
Ingmaras sureagavo į dEVooX Jūsų programavimo įkainiai
:) pasakysiu kitaip.. uz tavo pamineta suma "i rankas" as dar galvociau ar eit dirbt Lietuvoj. O siaip as gyvenu ir dirbu minetos imones padaliny Svedijoj. Bet visos mano pries tai destytos mintys yra Lietuvos salygomis. Beje, Lietuvoj yra ne vienas darbdavys, kuris programuotojam (aisku, kazko vertiem) moka tokius ir daug didesnius atlyginimus.
-
Ingmaras gavo reakciją nuo Mėgstu Paskaitų/Pamokų lankymas
Deja, bet lietuvos vidurinių mokyklų švietimo sistema nesuteikia visiškos laisvės pasirinkti tai, ko nori, nes yra nemažai privalomų dalykų..
-
Ingmaras gavo reakciją nuo lasickui Varom i užsieni ?
Lietuvos Respublikos Konstitucijos 25 straipsnis
Žmogus turi teisę turėti savo įsitikinimus ir juos laisvai reikšti. Žmogui neturi būti kliudoma ieškoti, gauti ir skleisti informaciją bei idėjas. Laisvė reikšti įsitikinimus, gauti ir skleisti informaciją negali būti ribojama kitaip, kaip tik įstatymu, jei tai būtina apsaugoti žmogaus sveikatai, garbei ir orumui, privačiam gyvenimui, dorovei ar ginti konstitucinei santvarkai. Laisvė reikšti įsitikinimus ir skleisti informaciją nesuderinama su nusikalstamais veiksmais - tautinės, rasinės, religinės ar socialinės neapykantos, prievartos bei diskriminacijos kurstymu, šmeižtu ir dezinformacija.
-
Ingmaras sureagavo į Sul Varom i užsieni ?
Deja, bet užsienyje taip nėra. Kad ir kaip bebūtų gaila, bet kuo labiau vengiu tokių "brolių", nes per du metus tokių veikėjų sutikau, kai, per 20 metų, Lietuvoje net negalvojau, kad tokie egzistuoja.
-
Ingmaras gavo reakciją nuo lasickui Varom i užsieni ?
Lietuvos Respublikos Konstitucijos 25 straipsnis
Žmogus turi teisę turėti savo įsitikinimus ir juos laisvai reikšti. Žmogui neturi būti kliudoma ieškoti, gauti ir skleisti informaciją bei idėjas. Laisvė reikšti įsitikinimus, gauti ir skleisti informaciją negali būti ribojama kitaip, kaip tik įstatymu, jei tai būtina apsaugoti žmogaus sveikatai, garbei ir orumui, privačiam gyvenimui, dorovei ar ginti konstitucinei santvarkai. Laisvė reikšti įsitikinimus ir skleisti informaciją nesuderinama su nusikalstamais veiksmais - tautinės, rasinės, religinės ar socialinės neapykantos, prievartos bei diskriminacijos kurstymu, šmeižtu ir dezinformacija.
-
Ingmaras gavo reakciją nuo lasickui Varom i užsieni ?
Lietuvos Respublikos Konstitucijos 25 straipsnis
Žmogus turi teisę turėti savo įsitikinimus ir juos laisvai reikšti. Žmogui neturi būti kliudoma ieškoti, gauti ir skleisti informaciją bei idėjas. Laisvė reikšti įsitikinimus, gauti ir skleisti informaciją negali būti ribojama kitaip, kaip tik įstatymu, jei tai būtina apsaugoti žmogaus sveikatai, garbei ir orumui, privačiam gyvenimui, dorovei ar ginti konstitucinei santvarkai. Laisvė reikšti įsitikinimus ir skleisti informaciją nesuderinama su nusikalstamais veiksmais - tautinės, rasinės, religinės ar socialinės neapykantos, prievartos bei diskriminacijos kurstymu, šmeižtu ir dezinformacija.
-
Ingmaras sureagavo į SauliusK Studijos Škotijoje
Oxford'o minimalūs reikalavimai:
Brandos Atestatas with an overall average of at least 9, with scores of at least 9 in the majority of subjects.
Taigi, turi turėti praktiškai 9-10 ir kokį vieną kitą aštuonetą iš neitin svarbių dalykų, kaip kūno kultūra, dailė ar lietuvių k. ;)
Pasakysiu atvirai - įstoti į Oxford undergraduate yra lengviau nei į SSE Riga. Žinau ne vieną ir ne du pavyzdžius, kai SSE Rigos atmesti ar į VU ekonomiką neįstoję žmonės išvažiavo į Harvard, Oxbridge, UPenn. Sutinku, kad į magistrą įstoti reikia būti išskirtiniu žmogum, tačiau į bakalaurą įstot nėra taip jau ir sunku ir tikrai nereikia būt olimpiadų prizininkų. Aišku, vien pabaigt mokyklos neužtenka - reikia vistiek turėt kuo pasigirt. Tavo atveju, jeigu turi su IT susijusią įmonę, dirbi freelancer'iu ar užsiėmi dar kokia susijusia veikla, gali laisvai pretenduot.
Apskritai, stojimas į Oxbridge yra dažnai suvokiamas iškreiptai. Jie ieško ne jau pasiekusių studentų, bet tokių, kurie turi milžinišką potencialą tobulėti ir lipti karjeros/akademiniais laiptais. Dėl to tavo IQ, sugebėjimas greitai pasisavinti informaciją, darbas komandoje, lyderio savybės yra vertinamos žymiai labiau nei tavo dabartiniai pasiekimai ar pažymiai. Svarbu yra parodyti savo potencialą tiek motyvaciniame laiške, tiek per interviu. Jeigu IŠ TIESŲ esi labai gabus ir labai perspektyvus, Oxbridge tai pastebės ir pakvies studijuot:).
-
Ingmaras gavo reakciją nuo lasickui Varom i užsieni ?
Lietuvos Respublikos Konstitucijos 25 straipsnis
Žmogus turi teisę turėti savo įsitikinimus ir juos laisvai reikšti. Žmogui neturi būti kliudoma ieškoti, gauti ir skleisti informaciją bei idėjas. Laisvė reikšti įsitikinimus, gauti ir skleisti informaciją negali būti ribojama kitaip, kaip tik įstatymu, jei tai būtina apsaugoti žmogaus sveikatai, garbei ir orumui, privačiam gyvenimui, dorovei ar ginti konstitucinei santvarkai. Laisvė reikšti įsitikinimus ir skleisti informaciją nesuderinama su nusikalstamais veiksmais - tautinės, rasinės, religinės ar socialinės neapykantos, prievartos bei diskriminacijos kurstymu, šmeižtu ir dezinformacija.
-
Ingmaras gavo reakciją nuo Mėgstu Paskaitų/Pamokų lankymas
Deja, bet lietuvos vidurinių mokyklų švietimo sistema nesuteikia visiškos laisvės pasirinkti tai, ko nori, nes yra nemažai privalomų dalykų..
-
Ingmaras sureagavo į Creatium gal kas turi minciu kaip isleisti ebook`a savo kurybos?
O kas neramina?
Jeigu aš viską suprantu taip, kaip yra, tai čia jokių sunkumų neturėtų būti. Apart pačios knygos parašymo, sukūrimo. Toliau belieka tik išsaugot PDF formatu ir dalinti, talpinti kur galima talpinti. Ar aš kažką ne taip suprantu?
-
-
-
Ingmaras sureagavo į UnoDėdė Vhost.lt man vienam lūžęs?
Kol neveikė, parašiau jiem laišką. Kai veikė, gavau atsakymą:
Arba viltis miršta paskutinė.. :) čia kaip su ta stikline vandens - pustuštė ar puspilnė vis dėlto yra toji pusė vandens pripilta stiklinė? :)
-
Ingmaras sureagavo į Cukrus Mokslai Japonijoje
Nu jomajo, is kokios ruros tu truaki visa informacija? Mociute pasake? Filme matei?
Ateina ir sapalioja kaip ten baisu ir sunku,o is kur informacija traukta tai nei pats nezino... Jei jau tu "primeti" kad viskas yra taip kaip tu sakai,tai nereiskia,kad viskas butent ir atitinka tavo fantazija.
-
Ingmaras sureagavo į sigitas86 Vaikai, nevokit.
O tu ir nenorėk :)
Klaidas padaro visi, bet jas pripažįsta tik didieji. - Montenis
Tai vat :)
Skaminti nescaminau ir vsio. :)
-
Ingmaras sureagavo į Tom Prieš paleidžiant PASAULINĮ PROJEKTĄ
Nekreipk dėmesio į tokius ir tiek, juk pilną visur ir visada bus tokių išminčių, kurie patys nieko nėra sukūrę, bet už tat viską žino. :)
-
Ingmaras sureagavo į Moneyerr Prieš paleidžiant PASAULINĮ PROJEKTĄ
Būtų juokinga jeigu nebūtų apmaudu, kad pasitvirtino mano manymas, jog paskelbus savo pranešimą sulauksiu panašių, tokio lygio svaisčiojimų visiškai ne į temą.
Paprašiau atrodo paprasto dalyko, keletos protingų, PRAKTINIŲ patarimų. O ką gaunu? Manęs klausia, ar aš numanau kiek kainuoja teisiniai dalykai! Kaip galėčiau nenumanyti jeigu jau pradedamas vykdyti ženklo registracijos procesas!? Arba iš ko mokėsiu programuotojui.. Arba spelionės kokių investicijų reikėtų vienam ar kitam dalykui.. C'MON! Nenukrypkim eilinį kartą į pievas ir negaišinkim vieni kitų laiko! AČIŪ!
-
Ingmaras sureagavo į Moneyerr Prieš paleidžiant PASAULINĮ PROJEKTĄ
Uždarbiečiai, vienas pats kuriu projektą pasaulinei rinkai, todėl tikrai nepamaišys jūsų pastabos, pasiūlymai ir šiaip protingos mintys.
Į kokius dalykus atkreipti dėmesį ir ko nepamiršti prieš didijį startą, t.y. prieš projekto pristatymą plačiąjam pasauliui? Čia turiu omenyje ne pirminius dalykus prieš pradedant verslą, tokius kaip rinkos ir konkurencijos tyrimai, išlaidų, investicijų skaičiavimai, ilgalaikiai tikslai, plėtra ir t.t., o visus vėlesnius žingsnius po verslo plano susidarymo.
Sutiksite, kad norint viską atlikti nepriekaištingai, svarbu apgalvoti kiekvieną, net smulkiausią ar net atrodytų elementariausią detalę.
Idealu, jei atsiras žmonių, kurie jau susidūrė su tuo praktiškai ir pasidalins savo patirtimi.
Sąrašas bus papildomas bei naudingas ir visiems kitiems, planuojantiems kurti ar jau kuriantiems pasaulinį projektą.
* Vienas pirmųjų dalykų ką reikia pasidaryti po verslo plano susidarymo, tai prekinio ženklo registracija. Žingsnis, reikalaujantis nemažų investicijų, bet būtina registruoti, ir iš anksto, net prieš, pvz., skelbiant viešą logotipo konkursą.
* Nepamiršti užsiregistruoti ne tik .com bet ir kitus pagrindinius domenus.
* Nepagailėti pinigų ir samdyti tik profesionalius savo sričių specialistus: programuotoją, dizainerį ir kt. Būtina pasirašyti sutartis dėl sąlygų, darbų atlikimo terminų ir pan.
Pradžiai tiek, pasidalinkite savo patirtimi!
-
Ingmaras sureagavo į Loganas Studijos Škotijoje
Čia tavęs neįžeidinėja, tik į Oxfordą sunku patekti, gi jis vienas geriausių universitetų pasaulyje. Tad jei turi 8-netų ir nesi olimpiadų prizininkas, tai tikrai neįstosi.
-
Ingmaras sureagavo į Cukrus Studijos Škotijoje
Eik tu juokdary....
Oxfordo offeriai
11kl pazymiai-be devynetu. 12 kl be devynetu ir 4 egzaminai su nemaziau kaip 95% rezultatu ir dar +98%~ pagal specialybe. Plius motyvacinis,kuriam turetum paminet,kiek metu jau imi prizines vietas olimpiadose,net nekalbu apie visokius projektus ir tt.
-
Ingmaras gavo reakciją nuo Raulynas Kažkokia nesąmonė, padėkit.
Siūlyčiau ir kortelės numerį išimt iš screenshoto jei nebenori daugiau memberių... :)