Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Sczytywanie danych z googla
pawelk3k
post
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 8.05.2012

Ostrzeżenie: (0%)
-----


Witam,
Robię właśnie program który sczytuje pierwszą stronę z googla (tuż po wpisaniu interesującego nas hasła). Kod wygląda tak:

  1. <?php
  2. $fraza="komputer";
  3. $url="http://www.google.pl/search?hl=pl&q=$fraza&btnG=Szukaj+w+Google&lr=";
  4. $tekst = file_get_contents($url);
  5. preg_match_all('@<h3 class=r><a href="(.*)" class=l>(.*)</a></h3>(.*)<div class="s">(.*)<br><cite>@iU', $tekst, $wynik);
  6. print_r($wynik);
  7. ?>

(Program zaczerpnięty z http://peb.pl/tworzenie-stron/353712-curl-na-google-2.html).


To co program wyświetla to :

Array ( [0] => Array ( ) [1] => Array ( ) [2] => Array ( ) [3] => Array ( ) [4] => Array ( ) )

Podejrzewam ze błąd jest gdzieś w funkcji preg_match_all. Zależy mi tylko na linku z strony. Lecz niestety nie wiem gdzie (IMG:style_emoticons/default/sad.gif) proszę o pomoc.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
pawelk3k
post
Post #2





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 8.05.2012

Ostrzeżenie: (0%)
-----


Oczywiście to co podałeś to działa lecz zwraca pełen link:

[/url?q=http://www.allegro.pl/item1095973044_t_torba_15_4_15_6_16_laptop_pokrowiec.html&sa=U&ei=92OtT76VG-XT4QSeuPifDA&ved=0CBIQFjAA&usg=AFQjCNGoxC2WeJwBl9IElbaD93LWYlw2RA] => T TORBA 15,4 15,6" 16

Chociaż link zaczyna się od www a kończy przed znakami "&sa=U" chciałbym dostać gotowy link w tym wypatku:

www.allegro.pl/item1095973044_t_torba_15_4_15_6_16_laptop_pokrowiec.htm

myślę o ponownym zastosowaniu getElementsByTagName.

od razu mówię ze funkcja strstr nie działa (IMG:style_emoticons/default/sad.gif) wyrzuca mi błąd

strstr() expects parameter 1 to be string, array given

Myśle ze to po prostu zmienna nie jest typu string (nie pytajcie mnie jak to możliwe). Więc zastosowałem pewien trick:

  1. $sResult2 = (string) $iVar;


gdy tak robię dostaje w odpowiedzi pustą wiadomość.

dokładny kod wygląda tak:

  1. $url = "http://www.google.pl/search?hl=pl&source=hp&q=site:$Liczba1+++%22$Liczba2";
  2.  
  3. $dom = new domDocument;
  4. @$dom->loadHTML(file_get_contents($url));
  5.  
  6. $resultsDiv = $dom->getElementById('ires');
  7. $links = $resultsDiv->getElementsByTagName('a');
  8.  
  9. foreach ($links as $tag)
  10. {
  11. if(strpos($tag->getNodePath(), 'h3')) $ret[$tag->getAttribute('href')] = $tag->childNodes->item(0)->nodeValue;
  12. }
  13. //$wys = $ret->getElementsByTagName('[/url?q=http:');
  14. echo '<pre>';
  15.  
  16.  
  17.  
  18. $nret = (string) $ret;
  19. $nowy = strstr($nret, "www");
  20. print_r($nowy);
  21. echo '</pre>';

Nie mam pojęcia dlaczego program tak reaguje, próbowałem również przypisywać $ret innej zmienna ale zawsze jest tak samo proszę o pomoc.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 14.10.2025 - 13:59