Chciałbym móc zeskrobać liczbę "o N wyników" dla dowolnego wyszukiwanego hasła w wyszukiwarce Google. Google jest dość odporny na skrobaki, więc może to być opcja z odrobiną pracy, ale pytam, czy jest lepszy sposób na zrobienie tego? Być może istnieje już wcześniej udostępniony przez Google interfejs API, który spełniłby tę potrzebę?Czy istnieje programowy sposób zwracania numeru "około N wyników" z wyszukiwarki Google?
Odpowiedz
Nie próbowałbym skrobania, ponieważ najprawdopodobniej wiążą się z tym konsekwencje prawne, ale skorzystał z Google Custom Search API. Będziesz potrzebować klucza API oraz identyfikatora CX (jest to identyfikator niestandardowej wyszukiwarki ustawionej na koncie Google)
Gdy uzyskasz dostęp do interfejsu API i swojego identyfikatora CX, może przesyłać kwerendy do metody cse.list i uzyskać numer, którego szukasz w odpowiedzi pod numerem totalResults
.
Podczas konfigurowania i dostosowywania własnej wyszukiwarki musisz zdefiniować witryny, które chcesz przeszukać. Na szczęście można dodać symbole wieloznaczne, takie jak * .com, * .net itp. Lub wykonaj instrukcje na tej stronie, aby przeszukać całą sieć: https://support.google.com/customsearch/answer/2631040?hl=en
Dołączyłem wszystkie linki potrzebne do poruszania się po to poniżej. Wypróbuj Eksplorator listy interfejsów po uzyskaniu identyfikatora CX. Otrzymasz dane odpowiedzi w czasie rzeczywistym, które możesz sprawdzić i bawić się.
Google Custom Search API
https://developers.google.com/custom-search/
Jest to metoda/końcowy będziemy chcieli użyć:
https://developers.google.com/custom-search/json-api/v1/reference/cse/list
cse.list metoda Explorer:
https://developers.google.com/apis-explorer/#p/customsearch/v1/search.cse.list
Konfigurowanie i zarządzanie niestandardową wyszukiwarkę
https://cse.google.com/cse/manage/all
Uwaga: Wyniki mogą się różnić nieco w zależności jak masz swoją wyszukiwarka skonfigurowany. Mam zestaw testów do przeszukiwania całej sieci z naciskiem na domeny * .com i * .net i otrzymuję większą liczbę niż ta, którą Google pokazuje w "O wynikach N". Nie jestem pewien, czy potrzebujesz tej dokładnej liczby, ale opisują ją jako "Informacje", więc i tak nie może to być dokładny numer. Chodzi o to, że w CSE masz dużą kontrolę nad tym, jak to skonfigurować i powinieneś być w stanie bardzo blisko.
Zakładając, że to Twój niestandardowy interfejs API wyszukiwania, czy próbowałeś warunkowo usunąć właściwość totalResults
z treści odpowiedzi JSON?
można osiągnąć wykonując test na parametr zapytania (powiedzmy q),
if(q.equals("your string")){
var keyName = "totalResults";
var resp = json_encode($response);
delete resp.queries.<APIkey>[keyName];
}
UWAGA: Struktura zlokalizować nazwa_klucza: totalResults został pochodzący z here
- 1. Czy można przechwycić wyszukiwane hasło z wyszukiwarki Google?
- 2. Alternatywa niestandardowej wyszukiwarki Google
- 3. Czy istnieje sposób zmuszenia api Google Speech do zwracania tylko słów jako odpowiedzi?
- 4. Operator wyszukiwarki Google oauth2 dostawca
- 5. Czy istnieje sposób na zwrócenie wielu wyników z podzapytaniem?
- 6. Czy mogę używać obrazów z wyników Google w mojej witrynie?
- 7. Tworzenie funkcji php do zwracania wyników mysql
- 8. Bezpośredni link do wyszukiwarki Google
- 9. Czy istnieje lepszy sposób zamaskowania numeru karty kredytowej w python?
- 10. Czy istnieje programowy sposób sprawdzania, w jaki sposób został utworzony komponent Spring bean?
- 11. Eclipse: Programowanie dynamiczne w sposób programowy
- 12. Czy istnieje sposób na powiązanie mapowania wyników i rozpakowywania?
- 13. Interfejs API wyszukiwarki Google App Engine
- 14. Programowy dostęp do zakładek przeglądarki Google Chrome
- 15. Yeoman, aby użyć serwera wyszukiwarki aplikacji Google
- 16. JavaScript: Oblicz n-ty root numeru
- 17. Czy istnieje szybki sposób na sprawdzenie, czy (n-1)! jest podzielna przez n?
- 18. Czy istnieje sposób wyświetlania "Podobne wyszukiwania" podczas korzystania z interfejsu Google Custom Search API
- 19. Kroki korzystania z niestandardowego interfejsu API wyszukiwarki Google w .NET
- 20. Czy istnieje sposób na rozdzielenie łańcucha znaków przez każdy n-ty separator w Pythonie?
- 21. Zewnętrzna baza danych wyszukiwarki aplikacji Google
- 22. Czy istnieje programowy sposób uzyskiwania standardowych wymiarów w pakiecie IPhone SDK
- 23. Interfejs API wyszukiwarki Google dla języka C#
- 24. Funkcja autouzupełniania interfejsu API wyszukiwarki niestandardowej Google?
- 25. Programowy sposób uzyskiwania słów kluczowych w Ruby
- 26. Google Search API - Liczba wyników
- 27. W jaki sposób wyszukiwarki indeksują fora?
- 28. Czy istnieje sposób wstawienia indeksu elementu (numeru potomnego) jako tekstu w elemencie wyłącznie przy użyciu CSS?
- 29. sposób zwracania średniej z pola czasu sql
- 30. Czy istnieje skrótowe oznaczenie O (n log n)?
This nie podaje rzeczywistej liczby wyników, ale bardzo ograniczony podzbiór. Zobacz tutaj: http://jsfiddle.net/gh/gist/library/pure/6130833/ – DhruvPathak
Jakie domeny skonfigurowałeś w swojej wyszukiwarce za pomocą używanego identyfikatora cx? wygląda na to, że szuka tylko "developers.google.com". Musisz dodać domeny wieloznaczne, jak wspomniałem powyżej, aby rozszerzyć wyszukiwanie. –
To jest przykład google, ale to, co mówię, to wiele domen wieloznacznych, to nadal brakowało dużej części sieci. – DhruvPathak