Определите, сколько страниц Twitter Search Api вернул - PullRequest
3 голосов
/ 12 мая 2009

Есть ли хороший способ определить, сколько страниц вернул API-интерфейс поиска в Твиттере, или есть способ определить, сколько значений было возвращено, и разделить это на количество просмотров на странице?

Ответы [ 4 ]

8 голосов
/ 13 мая 2009

Нет. API не раскрывает это; не потому, что это не полезная функция, а из-за аспектов ее предоставления.

Чтобы получить полный подсчет результатов, необходимо, чтобы алгоритм поиска полностью повторял свой индекс для каждого запроса. Затем, когда вы вернетесь ко второй странице, он должен будет перебрать свой индекс со страницы 2 и далее, чтобы снова подсчитать. Это означает, что получение всех данных будет O (n ^ 2) (потому что для возврата каждой из N страниц требуется сканирование всех последующих страниц) вместо ожидаемого O (n).

Поскольку большинству запрашивающих требуется только несколько страниц результатов, общая оптимизация запроса заключается в том, чтобы возвращать только частичные результаты, используя только указатель на индекс, позволяющий продолжить поиск в той точке, где он остановился.

По этим причинам большинство высокоуровневых API-интерфейсов разбиты на страницы. Чтобы получить точное количество, вы должны заставить запрос полностью повторять свой индекс, просматривая страницы. Это связано с большими затратами для удаленной службы, и многократное возвращение позволяет службе надлежащим образом регулировать ваш запрос, чтобы не оказывать негативного влияния на других пользователей.

1 голос
/ 13 мая 2009

Стоит отметить, что общее количество страниц также может варьироваться в зависимости от параметра rpp , который управляет количеством твитов, возвращаемых на страницу (максимум 100) .

Согласно документам API поиска , параметр page возвращает страницы только с максимальным общим результатом ~ 1500.

1 голос
/ 12 мая 2009

Таким образом, вы можете запустить цикл просмотра страниц, пока не получите пустой результат запроса.

0 голосов
/ 12 мая 2009

Нет, результаты не включают количество страниц. Данные ATOM содержат элемент «следующая страница», за которым вы можете итеративно следовать, пока этот элемент больше не будет.

<link type="application/atom+xml" rel="next" href="http://search.twitter.com/search.atom?lang=en&amp;max_id=1775692928&amp;page=11&amp;q=YOURQUERY"/>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...