Problema data la interviu
Moderatori: Moderatori, Start Moderator
-
Nicolae Florescu
- New Member
- Mesaje: 3
- Membru din: Sâm Sep 19, 2009 2:53 pm
-
Pirahna
- Senior Member
- Mesaje: 5985
- Membru din: Dum Aug 22, 2004 2:04 am
- Localitate: la birou
- Contact:
1. Preiei pagina (cu file_get_contents, fopen sau curl, care iti e mai usor si accesibil) : http://www.google.ro/search?hl=ro&site=case&q=case
2. Vezi cum sunt aranjate elementele (in cazul google ai un <li class="g w0"> care marcheaza inceputul rezultatului).
Ai un <h3 class="r"> <a href="adresa site" class="l" onmousedown="blablabla"> titlu site </a></h3>
dupa care putin mai jos ai un
<div class="s"> descriere <br> (divul se termina ceva mai jos)
Deci practic ai de extras elementele respective.
3. Trebuie sa faci expresia regulata care sa extraga datele respective ... in cazul asta ar fi
preg_match_all("/<h3 class="r"><a href=\"(.*)\" (.*)>(.*)</a></h3>(.*)<div class=\"s\">(.*)<br>/",$variabila_in_care_tii_pagina_de_la_google,$array_final);
La asta ar trebui adaugati cativa parametri referitori la tipurile de caractere, cat de greedy sa fie, etc, dar in mare cam asta e.
Am pus cu bold sectiunile importante, anume link, titlu si descriere.
4. Adaugi valorile din $array_final in baza de date.
2. Vezi cum sunt aranjate elementele (in cazul google ai un <li class="g w0"> care marcheaza inceputul rezultatului).
Ai un <h3 class="r"> <a href="adresa site" class="l" onmousedown="blablabla"> titlu site </a></h3>
dupa care putin mai jos ai un
<div class="s"> descriere <br> (divul se termina ceva mai jos)
Deci practic ai de extras elementele respective.
3. Trebuie sa faci expresia regulata care sa extraga datele respective ... in cazul asta ar fi
preg_match_all("/<h3 class="r"><a href=\"(.*)\" (.*)>(.*)</a></h3>(.*)<div class=\"s\">(.*)<br>/",$variabila_in_care_tii_pagina_de_la_google,$array_final);
La asta ar trebui adaugati cativa parametri referitori la tipurile de caractere, cat de greedy sa fie, etc, dar in mare cam asta e.
Am pus cu bold sectiunile importante, anume link, titlu si descriere.
4. Adaugi valorile din $array_final in baza de date.
|
-
Pirahna
- Senior Member
- Mesaje: 5985
- Membru din: Dum Aug 22, 2004 2:04 am
- Localitate: la birou
- Contact:
<a href mai avea dupa link chestii gen id, onclick, etc, am pus si acolo ca sa le ia pe toate intr-o variabila si sa gasesti finalul tagului ( > ).
Aparent are nevoie de /miU la sfarsit (multiline, case-insensitive, ungreedy), altfel se opreste la primul rezultat.
Uite scriptul complet:
<?php
// google script thingie
$variabila_in_care_tii_pagina_de_la_google = file_get_contents("http://www.google.ro/search?hl=ro&q=casa");
preg_match_all("/<h3 class=r><a href=\"(.*)\"(.*)>(.*)<\/a><\/h3><div class=\"s\">(.*)<br>/miU",$variabila_in_care_tii_pagina_de_la_google,$array_final);
//print_r($array_final); // array final
for($i=0;$i<count($array_final[0]);$i++)
{
$titlu_link[$i] = $array_final[3][$i];
$adresa_link[$i] = $array_final[1][$i];
$descriere_link[$i] = $array_final[4][$i];
}
print_r($titlu_link);
print_r($adresa_link);
print_r($descriere_link);
// haha !
?>
Aparent are nevoie de /miU la sfarsit (multiline, case-insensitive, ungreedy), altfel se opreste la primul rezultat.
Uite scriptul complet:
<?php
// google script thingie
$variabila_in_care_tii_pagina_de_la_google = file_get_contents("http://www.google.ro/search?hl=ro&q=casa");
preg_match_all("/<h3 class=r><a href=\"(.*)\"(.*)>(.*)<\/a><\/h3><div class=\"s\">(.*)<br>/miU",$variabila_in_care_tii_pagina_de_la_google,$array_final);
//print_r($array_final); // array final
for($i=0;$i<count($array_final[0]);$i++)
{
$titlu_link[$i] = $array_final[3][$i];
$adresa_link[$i] = $array_final[1][$i];
$descriere_link[$i] = $array_final[4][$i];
}
print_r($titlu_link);
print_r($adresa_link);
print_r($descriere_link);
// haha !
?>
|
Ultima oară modificat Mar Sep 22, 2009 4:01 pm de către olympia, modificat 1 dată în total.
Cine este conectat
Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 20 vizitatori