Причина в том, что Google оценивает только сколько результатов доступно. Когда вы загружаете каждую страницу, она уточняет оценку, и поэтому количество страниц изменяется.
Вы можете проверить свойствоtimateResultCount объекта customSearchControl.searcher.cursor, но, к сожалению, оно не поможет вам, потому что это всего лишь оценка, используемая CSE для генерации самой нумерации страниц. (По мере загрузки каждой страницы она будет меняться на новую оценку.) Также имеется свойство resultCount, но я считаю, что оно предназначено для обратной совместимости, поскольку оно всегда равно оцененному ResultCount.
К сожалению, CSE также недостаточно умна, чтобы помнить свою оценку. Таким образом, вы можете начать с оценки 127, перейти к последней странице и получить ее 94, затем перейти ко второй и последней странице и получить 120, даже если в этот момент он должен знать, что он не может быть больше, чем 94. Так что я думаю, если бы вы действительно хотели, вы могли бы сделать свою собственную нумерацию страниц, которая, по крайней мере, отслеживает минимальное значение. Похоже, что это обычно (всегда?) На последней странице, поэтому, если она должна быть настолько хорошей, насколько это возможно, вы можете программно загрузить последнюю страницу, взять оценку для построения нумерации страниц, а затем переключиться обратно на первую страницу для пользователя. .
Если вы решите пойти по этому пути, вы можете создать свою собственную нумерацию страниц, используя функцию customSearchControl.searcher.cursor.gotoPage (page). (https://developers.google.com/web-search/docs/reference#_class_GSearch)