Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [js] Wyniki wyszukiwania google w XML
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
onlyX
Witam!
Zastanawiam się, czy jest sposób, aby odpytać googla i wyniki dostać w postaci XMLa lub innej zserializowanej postaci. W Search API nie znalazłem rozwiązania, próbowałem też za pomocą jQuery wysłać zapytanie i sparsować otrzymany HTML, ale te skolei akceptuje jedynie lokalne URLe.
Ma ktoś pomysł jak to zrobić?
wookieb
W js za posrednictwem php. A w php juz sobie sparsujesz jak chcesz.
onlyX
"Weź takie coś z takim czymś."
No dobra. Ale może jakiś mały szczególik smile.gif
wookieb
... ajax odpytujesz plik php na localu który pobiera strone z googla, parsuje i tobie wyswietla. A jak pobierac strony to juz masz sporo mozliwosci, curl, file_get_contents (wymagane odpowiednie ustawienia serwer (najczesciej dobrze skonfigurowane)), fsock_open. Co tam tylko chcesz. Do wyboru do koloru.
onlyX
Dzię-ku-ję!

Jednak to nie jest takie proste. Użyłem takiego kodu:
  1. <?php
  2. $query='Google+Api';
  3.    $result = file_get_contents("http://www.google.com/search?q=".$query);
  4. ?>

I podstępne google zwróciło mi HTML z treścią zaszyfrowaną JavaScriptem. SimpleXML tego nie przełknie. Da się to zrobić w inny sposób niż udając przeglądarkę?


BTW: Próbowałem użyć Curl, odkomentowałem go w php.ini, dll znajduje się w odpowiednim katalogu, a mimo wszystko php go nie ładuje i mam undefined function.
onlyX
Problem jest bardziej skomplikowany niż to się na początku wydawało smile.gif

Jedyne co znalazłem to tą usługę: http://www.ecubicle.net/gsearch_rss.asmx?op=GetSearchResults
obsługuje SOAP, GET i POST, zwraca RSS,
ale to usługa a nie własne narzędzie
wookieb
To powtarzam. Przeczytaj jeszcze raz dokumentację bo tam jest taka opcja.
onlyX
z tego co doczytałem
output=xml
w adresie, zwraca błąd 403 prawdopodobnie dlatego, że Google serwuje xml tylko zaufanym (płacącym)
więc to nie wchodzi w grę.
wookieb
Myślałem, że owe konto posiadasz skoro mówiłeś o search api smile.gif.
W takim razie lepiej pobawić się samodzielnym parsowaniem wyników do xmla
onlyX
Co innego Search API, a co innego Search Appliance.
Żeby sparsować do XML'a musiałbym rozkodować JS, skórka niewarta wyprawki.

Zacznijmy od początku, może jest sposób, żeby wczytać wyniki wyszukiwania tylko przy użyciu JS i parsować po stronie przeglądarki?
Ja wiem, że wszystkim myślenie od razu schodzi na PHP, spróbujmy inaczej. Jakieś pomysły?
zegarek84
Cytat(onlyX @ 5.03.2009, 17:14:14 ) *
Żeby sparsować do XML'a musiałbym rozkodować JS, skórka niewarta wyprawki.

chcesz parsować stronę google prawda?? - to po co chcesz rozkodowywać js jak nic ciekawego w nim nie ma?? - po prostu wytnij z kodu js i zajmij się resztą źródła...
Cytat(onlyX @ 5.03.2009, 17:14:14 ) *
Zacznijmy od początku, może jest sposób, żeby wczytać wyniki wyszukiwania tylko przy użyciu JS i parsować po stronie przeglądarki?
Ja wiem, że wszystkim myślenie od razu schodzi na PHP, spróbujmy inaczej. Jakieś pomysły?

AJAX - i tu wybór należy do Ciebie, albo skorzystasz z gotowych bibliotek ajax'a albo zrobisz to w czystym ajax'ie - w google poprostu wpisz AJAX - to nic innego jak javascript z możliwością wczytywania zawartości plików, te gotowe biblioteki mają tylko dodatkowe narzędzia ułatwiające niektóre rzeczy... a jeśli nie chcesz się "bawić" ajax'em to jest jeszcze jedno rozwiązanie ale okrężną drogą ;p - możesz utworzyć iframe (bądź mógł być wcześniej na stronie ukryty) i do niego wczytywać zawartość strony po czym z poziomu JS odczytać zawartość tego iframe....
wookieb
NO ale przecież ajaxem nie pobierzesz zawartości innej strony jezu,... musi w tym uczestniczyc chociaz php
zegarek84
z innego hosta musi pośredniczyć php ale tak jak napomniałem jeśli chce bez ajaxa to może to wczytać do ramki i z ramki odczytać... (do ramki można wczytać z innego hosta)

pozatym co on dokładnie chce uzyskać?? - przykłady zczytywania wyników google są tutaj na forum - np. taki:
http://forum.php.pl/index.php?showtopic=111909&hl= - jeśli wie co chce do xml wyciągnąć to to wyciągnąć a następnie zapisać w odpowiedniej strukturze danych....

przy czym nie gwarantuję czy co do tego przykładu google nie zmieniło znowu źródła strony - a i to czy polskie czy inne wyniki to niech przyjrzy się budowie linku
Orkan
Cytat(zegarek84 @ 5.03.2009, 19:37:28 ) *
... możesz utworzyć iframe (bądź mógł być wcześniej na stronie ukryty) i do niego wczytywać zawartość strony po czym z poziomu JS odczytać zawartość tego iframe....


super, od wiekow szukam metody czytania zawartosci iframe z poziomu JS. Mozesz sypnac jakas przykladowa implementacja ktora dziala w FF?


@onlyX: niedawno napisalem skrypt PHP w wykorzystaniem cURL-a do pobierania wynikow google i wyciagania konkretnych linkow. jak cie to interesuje to daj znac na PW
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.