Google не возвращает более 64 результатов
-
29-09-2019 - |
Вопрос
Я использую Google API для .NET http://code.google.com/p/google-api-for-dotnet/И независимо от того, сколько результатов я прошу, что Google никогда не возвращается более 64.
Вот мой кодовый фрагмент:
GwebSearchClient client = new GwebSearchClient("xyz");
IList<IWebResult> results = client.Search(this.SearchText.Text, 100);
Я ожидал получить 100 результатов, но никогда не получаю более 64 независимо от используемого поискового запроса.
Любые идеи?
Решение
Согласно поисковому API Google AJAX (который использует одни и те же HTTP-запросы на серверы Google в качестве .NET API,) Максимальные возвращенные результаты составляют 64.
Примечание. Максимальное количество страниц результатов основано на типе поиска. Местный поиск поддерживает 4 страницы (или максимум 32 общих результатах), а другие поисковики (блог, книга, изображение, новости, патент, видео и веб) поддерживают 8 страниц (максимально всего 64 результатов).
От здесь, Прокрутите две строки вверх. Или поиск страницы для «максимального числа».
Другие советы
Всегда есть возможность разброса HTML:
Мне нужно было около 200 000 000 (или не менее 24 м) результатов, и поскольку API не разрезал его, я решил загрузить результаты HTML и разбирать их вручную, используя регулярные выражения. С помощью Hashtables я смог устранить какие-либо дубликаты.
Мое регулярное выражение:
(Разбирайте только URL-адреса с данным доменом и содержат поддомены с 3-20 буквенно-цифровыми символами)
@"((?!www)([A-Za-z0-9-]{3,20})(\.example\.com))"
HTML URL используется:
[C# Source]
String.Format( "http://www.google.com/search?q=site:{0}&num={1}"+
"&hl=en&tbo=d&as_qdr=all&start={2}&sa=N&biw=1280&bih=709",
"example.com", count, start)
Это было проверено в моих собственных приложениях и дает довольно приятные результаты!