Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wyciągnięcie czegoś od google
Forum PHP.pl > Forum > PHP
chomiczek
Witam, nie zastanawiam się czy sie da, bo zapewne sie da, ale jak.
Potrzebuje zasymulować pytanie do googla, a linki, które dostanę chciałbym zapisać sobie czy to do pliku czy to do bazy.. Pytanie tylko jak?
CURLquestionmark.gif

w zapytaniu, o które mi chodzi otrzymuje ok 400tys wyników :/

Może ktos robił cos takiego?
lisu
tak, uzyj curl. Zobacz jakie opcje sa do stronicowania i w petli pobieraj zapytanie oraz oczywiscie zmieniaj offset. Pozniej preg_match_all i wyciagasz linki smile.gif
chomiczek
qrcze cos mi nie działa preg_match_all
  1. <?php
  2. preg_match_all("/<p class=g>.*href=\"http:\/\/(.)\">.*<\/a><table/Us", $data, $matches);
  3. ?>


i nie wiem czemu? faza taka istnieje w wynikach i powinno być min. 10par.. a w tej chwili jak użyje
  1. <?php
  2. echo count($matches);
  3. ?>

to mi zwróci 2

natomiast takie wywołania:
  1. <?php
  2. for($i=0; $i<count($matches[0]); $i++) {
  3. echo 'x';
  4. }
  5. ?>

nie zwraca mi nic. Wnioskuje, że bład jest w [preg_match_all
tylko gdzie?
Aha zmienna $data przechowuje zawartość strony wpisaną poleceniem:
  1. <?php
  2. $data=curl_exec($ch);
  3. ?>

więc nie powinno byc problemu.. nie powinno ale jednak jest.
lisu
pobaw sie:
  1. <?php
  2. print_r($matches)
  3. ?>

i w stringu do funkcji preg_match_all pokombinuj z nawiasami, u mnie dziala np takie cos:
  1. <?php
  2. preg_match_all("(<li>(<a href=\"(.*?)\">(.*?)<\/a>))",$data,$links);
  3. ?>
chomiczek
Hmm.. piszesz, że u Ciebie działa takie coś:
  1. <?php
  2. preg_match_all("(<li>(<a href=\"(.*?)\">(.*?)<\/a>))",$data,$links);
  3. ?>

u mnie nie działa :/ i niechodzi tutaj o zmienne :/
qrcze nie mam pomysłu.
lisu
hmm, u mnie dziala ale do wyciagania z innego serwisu. Musisz ten string poprawic sam winksmiley.jpg
dr_bonzo
Za takie cos google podobno banuje.

A google API? http://www.google.com/apis/
chomiczek
ale co banująquestionmark.gif Przecież jeśli w CURLu sie ładnie przestawie to będzie chyba ok, np;
  1. <?php
  2. curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.8.0.1) Gecko/20060111 Firefox/1.5.0.1");
  3. ?>

to chyba nie będzie problemu, bo co google ma zbanować.
Niezmienia to faktu, że ciągle mam puste tablice (niewiedziec czemu)
dtb
http://forum.php.pl/index.php?showtopic=40270 - 3 post - masz tam jak wyniki z google przedstawic jako xml
chomiczek
poradziłem sobie, ale mam problem teraz z CURL_PROXY szukam w necie i nie wiem jak ustawić, zeby mi sie dobrze łączył.. póki co zwraca mi wyniki, ale po którym przeładowaniu strony blokują mi serwer :/
jacek14
Cytat(dr_bonzo @ 2006-03-03 16:15:49)
Za takie cos google podobno banuje.

nie wiecie przypadkiem czy inne wyszukiwarki ( w tym polskie) tez banuja za takie wydzieranie danych? winksmiley.jpg
Diabl0
A nie lepiej/szybciej/wygodniej/zgodnie z intencją właścicieli Google będzie wykorzystać Web services? http://www.google.com/apis/
wieja
Cytat(chomiczek @ 2006-03-08 13:07:20)
ale po którym przeładowaniu strony blokują mi serwer :/

Nikt niewie "po ilu" googlarka zablokuje, generalnie zasada jest taka ze zablokuje jak sie "wqrzy" ze interface dla userów jest wykorzystywany przez skrypt/robota.
Jesli w skrypcie zasymulujesz naturalną aktywność ludzką to mysle ze mozesz spokojnie dziennie kilkadziesiąt fraz przeszukiwać, a jesli potzreba Ci wiecej to lepiej sie wspomoc jakimiś serwerkami z innymi IP
Co do SEO to tu jest kopalnia wiedzy
forum.optymalizacja.com/
chomiczek
Temat rozwiązałem już dawno, ale widzę, że ktoś odświeża temat.. Ogólnie zastosowałem CURLa i serwer proxy.. spokojnie dochodzę do ok. 100zapytań na dobę..
Mam jednak pytanie w kwestii googla.. da się wyciągnąc pozycję > 1000??
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.